如何在PHP上对键不是字符串标签的多维数组进行排序
我有一个多维数组:如何在PHP上对键不是字符串标签的多维数组进行排序,php,multidimensional-array,Php,Multidimensional Array,我有一个多维数组: $serviceTimes = Array ( [0] => Array ( [0] => PM1900 [1] => 7:00pm ) [1] => Array ( [0] => PM1900 [1] => 7:00pm ) [2] => Array ( [0] => PM1415 [1] => 2:15pm ) [3] => Array ( [0] => PM1919 [1] => 7
$serviceTimes = Array (
[0] => Array ( [0] => PM1900 [1] => 7:00pm )
[1] => Array ( [0] => PM1900 [1] => 7:00pm )
[2] => Array ( [0] => PM1415 [1] => 2:15pm )
[3] => Array ( [0] => PM1919 [1] => 7:19pm )
[6] => Array ( [0] => PM2020 [1] => 8:20pm )
)
但是我无法对[0]元素上的数组进行排序。这不起作用:
array\u multisort($serviceTimes[0],SORT\u ASC,$serviceTimes)代码>
这也行不通
array\u multisort($serviceTimes[][0],SORT\u ASC,$serviceTimes)代码>
有什么想法吗
理想情况下,最终,这就是我希望生产的产品:
Array (
[0] => 2:15pm )
[1] => 7:00pm )
[2] => 7:00pm )
[3] => 7:19pm )
[4] => 8:20pm )
)
使用array\u column
从子数组中提取0
列,并在此列上排序:
array_multisort(array_column($serviceTimes, 0), SORT_ASC, $serviceTimes);
您在0
元素上声明排序,但您的输出显示1
元素的时间。如果是这样,只需将array\u列
参数更改为1
通常,您也可以将()与您自己的compoare函数一起用于这种自定义排序(所有以“u”为前缀的函数:…)
您是否阅读了的文档。我打赌答案已经作为一个例子出现了。修改了我的OQ@axiac你放弃了吗???太棒了…这就是答案@AbraCadaver。谢谢
<?php
function mysort ($a, $b){
return strcmp($a[0], $b[0]);
}
$serviceTimes = array ( 0 => array ( 0 => 'PM1900', 1 => '7:00pm', ), 1 => array ( 0 => 'PM1900', 1 => '7:00pm', ), 2 => array ( 0 => 'PM1415', 1 => '2:15pm', ), 3 => array ( 0 => 'PM1919', 1 => '7:19pm', ), 4 => array ( 0 => 'PM2020', 1 => '8:20pm', ), );
usort($serviceTimes, 'mysort');
var_dump(serviceTimes);