微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用第二个元素排序

如何解决使用第二个元素排序

从此数组开始:

$TEST=array (
    0 => array ( 0 => 'b',1 => 'y',2 => 'O',),1 => array ( 0 => 'a',1 => 'z',2 => array ( 0 => 'c',1 => 'x',)

如何对其进行排序? (基于第二个元素的xyz):

$TEST=array (
    2 => array ( 0 => 'c',0 => array ( 0 => 'b',)

简单的asort($TEST)的结果是(基于第一个元素的abc):

$TEST=array (
    1 => array ( 0 => 'a',)

解决方法

您可以使用以下一行代码来做到这一点:

array_multisort( array_column($yourArray,$index),SORT_ASC,$yourArray );

在您的情况下,这是使用方法:

$TEST=array (
    0 => array ( 0 => 'b',1 => 'y',2 => 'O',),1 => array ( 0 => 'a',1 => 'z',2 => array ( 0 => 'c',1 => 'x',)
array_multisort( array_column($TEST,1),$TEST );
print_r($TEST);

http://php.net/manual/en/function.array-multisort.php

处检查array_multisort ,

带有太空飞船的显式uasort:

<?php

$items = [
    0 => [ 0 => 'b',2 => 'O' ],2 => [ 0 => 'c',1 => [ 0 => 'a',2 => 'O' ]
];

uasort($items,function($a,$b) { return $a[1] <=> $b[1]; });
var_export($items);

输出:

array (
  2 => 
  array (
    0 => 'c',0 => 
  array (
    0 => 'b',1 => 
  array (
    0 => 'a',)

用短箭头功能表示法书写:

uasort($items,fn($a,$b) => $a[1] <=> $b[1]);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。