如何将数组分为3个元素,按最后一个元素排序并显示这些元素? [英] How can I group my array into groups of 3 elements, sort them by the last element and display the elements?

查看:73
本文介绍了如何将数组分为3个元素,按最后一个元素排序并显示这些元素?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图按3个元素组成的组显示我的数组,并按每个组的最后一个元素进行排序.

I'm trying to display my array in groups of 3 elements, sorted by the last element of each group.

我的数组:

$info = array('goal','raul','80','foul','moneer','20','offside','ronaldo','60');

我的预期输出是:

1-foul moneer 20
2-offside ronaldo 60
3-goal raul 80

按元素组的最后一个值排序.

Sorted by the last value of the element groups.

我正在使用foreach来显示它:

I'm using foreach to display it:

$i = 0;
foreach($info as $key => $val) {
    $i++;
    echo $info[$key] . '<br>';
    if ($i % 3 == 0){
        echo "<br />";
}

这可能吗?如果是的话,如何更改代码以获得预期的输出?

Is this possible ? And if yes, how can I change my code to get my expected output?

推荐答案

这应该对您有用:

首先,我们 array_chunk() 将您的数组分成3块元素,因此您的数组将具有以下结构:

First we array_chunk() your array into chunks of 3 elements, so your array will have this structure:

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
        )

)

此后,我们按最后一个值(此处为键2)对它进行排序,并使用 usort() 只需比较值即可.然后最后,您可以遍历数组并显示数据.

After this we sort it by the last value (here key 2), with usort() by simply comparing the values. Then at the end you can just loop through your array and display the data.

<?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>";

?>

输出:

1-foul moneer 20
2-offside ronaldo 60
3-goal raul 80

这篇关于如何将数组分为3个元素,按最后一个元素排序并显示这些元素?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆