PHP键值排序问题求助

lkiven
  • 32

现在有两个数组是这样的,但是第二个数组的键不是按原来的样子排列
image.png
我希望的第二个数组的键是按照307,287,288,289...这样子排列
image.png
有什么办法可以解决这个问题吗?

回复
阅读 1.2k
4 个回答

uksort,想怎么排就怎么排。

无非是让第二数组根据第一个数组的值进行排序,得到第三个数组$c,简化如下

$a = [0,2,1];
$b = ["aaaa","bbb","ccc"];

foreach ($a as $v) {
    $c[]=$b[$v];
}

print_r($c);
// [aaa,ccc,bbb]
$a = [307, 287, 288, 289, 290];
$b = [
    287 => '287.png',
    288 => '288.png',
    289 => '289.png',
    290 => '290.png',
    307 => '307.png'
];
array_walk($a, function(&$v) use ($b) {
    $v = $b[$v];
});
print_r($a);

输出结果:

Array
(
    [0] => 307.png
    [1] => 287.png
    [2] => 288.png
    [3] => 289.png
    [4] => 290.png
)
宣传栏