例如,我有两个数组,如:
$first_array = array(
1 => 'a',
2 => 'b',
3 => 'c',
4 => 'd',
5 => 'e'
);
$second_array = array(
1 => 'not important',
4 => 'not important',
3 => 'not important',
5 => 'not important',
2 => 'not important',
);
有没有任何函数可以将第一个数组键(带值)按第二个数组键的顺序排列?或者我只需要循环第二个数组并通过键重新创建第一个数组?
更新:结果值应按秒数组键序列排列
$result = array(
1 => 'a',
2 => 'd',
3 => 'c',
4 => 'e',
5 => 'b'
);
相同的问题已经发布
按另一个数组的键对数组进行排序
根据另一个数组的关键字对数组进行排序?
希望会有所帮助!
您可以这样做。。。
<?php
$first_array = array(
1 => 'a',
2 => 'b',
3 => 'c',
4 => 'd',
5 => 'e'
);
$second_array = array(
1 => 'not important',
4 => 'not important',
3 => 'not important',
5 => 'not important',
2 => 'not important',
);
foreach($first_array as $k=>$v)
{
$second_array[$k]=$v;
}
$result = array_values($second_array);
array_unshift($result, "dummy");
unset($result[0]);
print_r($result);
输出:
Array
(
[1] => a
[2] => d
[3] => c
[4] => e
[5] => b
)
您可以通过使用单个foreach()循环和array_flip()来实现;和array_combine();
$f = array(
1 => 'a',
2 => 'b',
3 => 'c',
4 => 'd',
5 => 'e'
);
$s = array(
1 => 'dummy',
4 => 'dummy',
3 => 'dummy',
5 => 'dummy',
2 => 'dummy',
);
$c=array();
$j=1;
foreach($s as $k=>$v){
$c[]=$f[$k];
}
$f=array_flip($f);
$c=array_combine($f,$c);
print_r($c);