1
这个例子依赖于两个键/值,而不是像我在堆栈溢出中看到的许多其他例子那样。除了通过primary
键排序数组以外,我还想按age
键对它进行排序,以便我可以在下面实现预期结果。我应该如何修改下面的代码来实现它? CURRENT RESULT有A-6-6
键错位,因为我的代码还没有处理它。使用两个不同的键或值排列多维数组
原始数组
$myarray = [
'Z-9-0' => [
'primary' => true,
'age' => 55
],
'C-7-1' => [
'primary' => false,
'age' => 60
],
'K-1-9' => [
'primary' => true,
'age' => 60
],
'C-2-1' => [
'primary' => false,
'age' => 40
],
'F-6-6' => [
'primary' => true,
'age' => 60
],
'A-6-6' => [
'primary' => true,
'age' => 30
]
];
预期的结果
(
[F-6-6] => Array
(
[primary] => 1
[age] => 60
)
[K-1-9] => Array
(
[primary] => 1
[age] => 60
)
[Z-9-0] => Array
(
[primary] => 1
[age] => 55
)
[A-6-6] => Array
(
[primary] => 1
[age] => 30
)
[C-7-1] => Array
(
[primary] =>
[age] => 60
)
[C-2-1] => Array
(
[primary] =>
[age] => 40
)
)
CODE
uasort($myarray, function($a, $b) {
return strcmp($b['primary'], $a['primary']);
});
print_r($org);
当前结果
正如您所见,A-6-6
与上述预期结果相比并不合适。所以它应该出现的位置越高,age
就越大。
(
[A-6-6] => Array
(
[primary] => 1
[age] => 30
)
[F-6-6] => Array
(
[primary] => 1
[age] => 60
)
[K-1-9] => Array
(
[primary] => 1
[age] => 60
)
[Z-9-0] => Array
(
[primary] => 1
[age] => 55
)
[C-7-1] => Array
(
[primary] =>
[age] => 60
)
[C-2-1] => Array
(
[primary] =>
[age] => 40
)
)
我不知道它是否匹配你的问题;不过,你可以快速浏览一下:http://php.net/manual/en/function.uasort.php#114535 –