我有一个数组的数组,格式如下:
$list = [ ["fdsa","1","fdsa"],["sadf","0","asdf"],["frfrf","0","sadfdsf"] ]
如何根据每个内部数组的第一个值对$list
进行字母排序?
谢谢!
答案 0 :(得分:2)
我有这个功能用于另一个答案,但可以修改它来做同样的事情:
// This sorts simply by alphabetic order
function reindex( $a, $b )
{
// Here we grab the values of the 'code' keys from within the array.
$val1 = $a[0];
$val2 = $b[0];
// Compare string alphabetically
if( $val1 > $val2 ) {
return 1;
} elseif( $val1 < $val2 ) {
return -1;
} else {
return 0;
}
}
// Call it like this:
usort( $array, 'reindex' );
print_r( $array );
原文:Sorting multidimensional array based on the order of plain array
答案 1 :(得分:1)
<?php
asort($list);
// OR
array_multisort($list);
?>
PHP手册:asort()
和array_multisort()
答案 2 :(得分:1)
function order($a, $b){
if ($a[0] == $b[0]) {
return 0;
}
return ($a[0] < $b[0]) ? -1 : 1;
}
$list = [ ["fdsa","1","fdsa"],["sadf","0","asdf"],["frfrf","0","sadfdsf"] ];
usort($list, "order");
var_dump($list); die;
答案 3 :(得分:1)
答案 4 :(得分:-1)
您需要使用自己的比较功能进行排序,并将其与usort()
一起使用。