让我们假设我有一个嵌套的PHP数组$aaa,其中条目$aaa[$bbb][$ccc]如下
array(0 => array('x' => 3, 'y' => 2), 1 => array('x' => 2, 'y' => 1), 2 => array('x' => 4, 'y' => 1))假设我只想按x值对这个数组进行排序,以便得到数组
array(0 => array('x' => 2, 'y' => 1), 1 => array('x' => 3, 'y' => 2), 2 => array('x' => 4, 'y' => 1))而不是修改所有其他子数组。我该怎么做呢?我无法用usort和自定义函数来完成这个任务。
发布于 2016-11-10 18:22:13
您可以像下面这样与usort一起使用:
<?php
function compare_func($key) {
return function ($a, $b) use ($key) {
return strnatcmp($a[$key], $b[$key]);
};
}
$name = array(0 => array('x' => 3, 'y' => 2), 1 => array('x' => 2, 'y' => 1), 2 => array('x' => 4, 'y' => 1));
usort($name, compare_func('x'));
print_r($name);
?>输出:Array ( [0] => Array ( [x] => 2 [y] => 1 ) [1] => Array ( [x] => 3 [y] => 2 ) [2] => Array ( [x] => 4 [y] => 1 ) )
有关更多细节,http://php.net/manual/en/function.usort.php
https://stackoverflow.com/questions/40534319
复制相似问题