在php中为数组添加排序


Add sorting to an array in php

我需要一些PHP中的表排序帮助。此命令:

print_r($pieces);

打印这个:

Array (
[0] => John
[1] => 22
[2] => blue
[3] => offline
)
Array (
[0] => Ann
[1] => 19
[2] => 897505034
[3] => red
[4] => online
)
Array (
[0] => Mike
[1] => 31
[2] => 897505034
[3] => yellow
[4] => online
)

然后我把这些记录填满了表格。

echo "<tr>";
echo "<td>" . $pieces[0] . "</td>";
echo "<td>" . $pieces[1] . "</td>";
echo "<td>" . $pieces[2] . "</td>";
echo "<td>" . $pieces[3] . "</td>";
echo "<td>" . $pieces[4] . "</td>";
echo "</tr>";
John,22,blue,offline
Ann,19,897505034,red,online
Mike,31,897505034,yellow,online

我不知道如何通过按年龄排序来改变表格的填充顺序,例如:

Ann,19,897505034,red,online
John,22,blue,offline
Mike,31,897505034,yellow,online

使用Usort

喜欢这个吗

 <?php
$pieces=array(array (
    0 => 'John',
    1 => 22,
    2 => 'blue',
    3 => 'offline'
),
    array (
        0 => 'Ann',
        1 => 19,
        2 => 897505034,
        3 => 'red',
        4 => 'online'
    ),
    array (
        0 => 'Mike',
        1 => 31,
        2 => 897505034,
        3 => 'yellow',
        4 => 'online'
    ));
usort($pieces,function($a,$b){ return $a[1]<$b[1]?-1:$a[1]!=$b[1];});

foreach($pieces as $arr){
foreach($arr as $v){
    echo  $v." ";
}
echo "'n";
}

演示

输出

Ann 19 897505034 red online 
John 22 blue offline 
Mike 31 897505034 yellow online 

PHP>=5.5.0

$pieces = array_multisort(array_column($pieces, 1), SORT_ASC, $pieces);