Well, if you cannot find built-in function to match your particular case (and there will be plenty of such cases), then maybe you have to try by yourself?
Map the arrays by the name
key and fill a new one:
<?php
$arr1 =array ( 0=>array(
'user'=>'name1',
'age'=>'28'
),
1=>array(
'user'=>'name2',
'age'=>'58'
),
2=>array(
'user'=>'name3',
'age'=>'15'
)
);
$arr2 =array (0=>array(
'user'=>'name3',
'sex'=>'male'
),
1=>array(
'user'=>'name1',
'sex'=>'male'
),
2=>array(
'user'=>'name2',
'sex'=>'female'
)
);
$result = array();
foreach ($arr1 as $key => $value) {
foreach ($arr2 as $k => $v) {
if($value['user'] == $v['user']) {
$result[$k]['user'] = $arr1[$k]['user'];
$result[$k]['age'] = $arr1[$k]['age'];
$result[$k]['sex'] = $arr2[$k]['sex'];
}
}
}
var_dump($result);
array (size=3)
1 =>
array (size=3)
'user' => string 'name2' (length=5)
'age' => string '58' (length=2)
'sex' => string 'male' (length=4)
2 =>
array (size=3)
'user' => string 'name3' (length=5)
'age' => string '15' (length=2)
'sex' => string 'female' (length=6)
0 =>
array (size=3)
'user' => string 'name1' (length=5)
'age' => string '28' (length=2)
'sex' => string 'male' (length=4)
You can use sort to sort by keys:
sort($result);
var_dump($result);
array (size=3)
0 =>
array (size=3)
'user' => string 'name1' (length=5)
'age' => string '28' (length=2)
'sex' => string 'male' (length=4)
1 =>
array (size=3)
'user' => string 'name2' (length=5)
'age' => string '58' (length=2)
'sex' => string 'male' (length=4)
2 =>
array (size=3)
'user' => string 'name3' (length=5)
'age' => string '15' (length=2)
'sex' => string 'female' (length=6)