Mou*_*afa 3 php arrays sorting foreach
我试图以 3 个元素为一组显示我的数组,按每组的最后一个元素排序。
我的阵列:
$info = array('goal','raul','80','foul','moneer','20','offside','ronaldo','60');
Run Code Online (Sandbox Code Playgroud)
我的预期输出是:
1-foul moneer 20
2-offside ronaldo 60
3-goal raul 80
Run Code Online (Sandbox Code Playgroud)
按元素组的最后一个值排序。
我正在使用 foreach 来显示它:
$i = 0;
foreach($info as $key => $val) {
$i++;
echo $info[$key] . '<br>';
if ($i % 3 == 0){
echo "<br />";
}
Run Code Online (Sandbox Code Playgroud)
这可能吗 ?如果是,我如何更改我的代码以获得预期的输出?
这应该适合你:
首先,我们array_chunk()将数组分成 3 个元素的块,因此您的数组将具有以下结构:
Array
(
[0] => Array
(
[0] => goal
[1] => raul
[2] => 80
)
[1] => Array
(
[0] => foul
[1] => moneer
[2] => 20
)
[2] => Array
(
[0] => offside
[1] => ronaldo
[2] => 60
)
)
Run Code Online (Sandbox Code Playgroud)
在此之后,我们按最后一个值(这里是键 2)对其进行排序,并usort()通过简单地比较这些值。然后最后你可以循环遍历你的数组并显示数据。
<?php
$info = array('goal','raul','80','foul','moneer','20','offside','ronaldo','60');
$arr = array_chunk($info, 3);
usort($arr, function($a, $b){
return $a[2] <=> $b[2];
});
foreach($arr as $k => $v)
echo ($k+1) . "-" . implode(" ", $v) . "<br>";
?>
Run Code Online (Sandbox Code Playgroud)
输出:
1-foul moneer 20
2-offside ronaldo 60
3-goal raul 80
Run Code Online (Sandbox Code Playgroud)