PHP 按键值对数组进行数字排序
我试图根据第一个键中的值按数字顺序对多个数组进行排序:
$array1[0] = '1';
$array1[1] = 'content';
$array1[2] = 'more content';
$array3[0] = '3';
$array3[1] = 'content';
$array3[2] = 'more content';
$array4[0] = '4';
$array4[1] = 'content';
$array4[2] = 'more content';
$array2[0] = '2';
$array2[1] = 'content';
$array2[2] = 'more content';
$arrays = array($array1, $array3, $array4, $array2);
foreach ($arrays as $array) {
echo $array[0] . ' ' . $array[1] . ' ' . $array[2] . '<br>';
}
以“1,3,4,2”序列输出数组,我需要将它们输出为:“1,2, 3、4'。不确定如何或是否在此处使用 ksort/asort/array_multisort 函数。
I'm trying to sort several arrays in numerical order based on the value in their first key:
$array1[0] = '1';
$array1[1] = 'content';
$array1[2] = 'more content';
$array3[0] = '3';
$array3[1] = 'content';
$array3[2] = 'more content';
$array4[0] = '4';
$array4[1] = 'content';
$array4[2] = 'more content';
$array2[0] = '2';
$array2[1] = 'content';
$array2[2] = 'more content';
$arrays = array($array1, $array3, $array4, $array2);
foreach ($arrays as $array) {
echo $array[0] . ' ' . $array[1] . ' ' . $array[2] . '<br>';
}
That outputs the arrays in a '1, 3, 4, 2' sequence, I need them to be output thusly: '1, 2, 3, 4'. Not sure how or even if to use the ksort/asort/array_multisort functions here.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您将需要一个自定义比较函数,然后可以将其与
usort
或uasort
:从 PHP 5.3 开始,您还可以使用 匿名函数 用于比较函数:
您还可以使用
array_multisort
,创建一个首先要排序的键数组,并使用它对数组项本身进行排序:这样做可以防止为每对值调用比较函数进行比较时只比较关键值。
You will need a custom comparison function that you then can use with
usort
oruasort
:As of PHP 5.3 you could also use an anonymous function for the comparison function:
You could also use
array_multisort
, create an array of the keys that are to be sorted first and use it to sort the array items itself:Doing this prevents calling the comparing function for each pair of values that is compared as only the key values are compared.
使用 usort 您可以在数组上指定自己的排序标准。这是一个关于如何实现你所要求的想法
Using usort you can specify your own sorting criteria on an array. This is an idea of how you could achieve what you ask for