如果comap是相同的值然后取决于PHP中的其他键,如何对多维数组排序?

尼古尔·潘查(Nikul Panchal)

我正在研究usort函数,现在我有这样的数组

$data = array(
        array('rank'=>8,'suit'=>0),
        array('rank'=>7,'suit'=>3),
        array('rank'=>8,'suit'=>2),
    );

当我使用usort函数时,如下

usort($data function($a, $b) {
            return $a['rank'] - $b['rank'];
        });

而且我得到以下结果:

$data = array(
            array('rank'=>7,'suit'=>3),
            array('rank'=>8,'suit'=>0),
            array('rank'=>8,'suit'=>2),
        );

但我想要以下结果:

 $data = array(
                array('rank'=>7,'suit'=>3),
                array('rank'=>8,'suit'=>2),
                array('rank'=>8,'suit'=>0),
            );

我想首先按等级升序,如果等级具有相同的值,那么我想按西装降序,有人可以帮我如何用usort功能达到这个结果

艾姆德夫

仍在使用usort(),这将排序rank升序顺序suit递减顺序:

usort($data, function($a, $b) {
    if ($a['rank'] == $b['rank']) {
        if ($a['suit'] == $b['suit']) {
            return 0;
        }
        return $a['suit'] > $b['suit'] ? -1 : 1;
    }
    return $a['rank'] < $b['rank'] ? -1 : 1;
});

我通过使用PHP 7飞船运算符多次执行了此逻辑
这是使用此运算符对rank进行排序的相同解决方案

usort($data, function($a, $b) {
    if ($a['rank'] == $b['rank']) {
        if ($a['suit'] == $b['suit']) {
            return 0;
        }
        return $a['suit'] > $b['suit'] ? -1 : 1;
    }
    return $a['rank'] <=> $b['rank'];
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

asyncValidator取决于其他字段的值

如何在Swift / Xcode中对1个数组排序并通过相同的键更改其他多个数组的顺序

如果值与PHP中数组中的其他值相关,如何从数组中删除数组?

如何创建一个值取决于r中其他列的列?

如何使用数组值对PHP中的多维数组进行排序?

如果数组的值与PHP中其他花药数组的值相同,如何获得相同的值?

PHP仅从键与其他数组相交的多维数组中获取值

如何在PHP中按值对多维数组进行排序

根据子数组值对PHP多维数组进行排序,然后对主数组键进行排序

是否有可能在PHP中对多维数组进行排序以按其他值排序,即1/0/1/0/1/0

如何获得具有不同键但在php中具有相同值的两个多维数组的差异?

如何在PHP中按时间值对多维数组排序?

结果取决于其他表中的值

如何合并保留唯一键并用逗号分隔其他值的PHP多维数组

特定数组值的总和取决于其他数组上的索引值列表

如何对其他行进行排序取决于VBA中的特定行?

允许的元素值如何取决于XSD中的其他元素值?

MySQL的行值总和取决于其他相同的字段

Json_键的值取决于其他键的值

检查多维数组中是否存在值并编辑同一键内的其他值

如何在新数组中获取Php多维数组相同键的相同值的相关总数?

附加两个多维数组,然后在 PHP 中按时间戳值排序

如何验证取决于 php laravel 中的其他值?

PHP按多维数组中的值排序

如何创建一个新列,其值取决于其他列中的值?

如何按其他数组对php多维数组进行排序

如果看到重复值,如何通过键对对象数组进行排序,然后在 javascript 中通过另一个键对它们进行排序?

如果php中的某些元素中存在键,如何使用值对数组进行排序

如何在PHP中删除多维数组相同键的重复值