Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 按子数组中的元素数对数组进行排序_Php_Arrays_Sorting - Fatal编程技术网

Php 按子数组中的元素数对数组进行排序

Php 按子数组中的元素数对数组进行排序,php,arrays,sorting,Php,Arrays,Sorting,我有一个数组。我想对包含的数组进行排序,以便数组中元素最多的子数组排在第一位 例如: 预期结果: 包含3个元素的子数组排在第一位,包含1个元素的子数组排在最后 $my_array=array( 数组(0=>“a”,1=>“b”,4=>“c”), 数组(0=>“p”,2=>“k”), 数组(3=>“z”), ); 只需将usort()与count()方法结合使用即可 <?php $my_array = array( array(0=>"a", 1=>"b", 4=>

我有一个数组。我想对包含的数组进行排序,以便数组中元素最多的子数组排在第一位

例如:

预期结果: 包含3个元素的子数组排在第一位,包含1个元素的子数组排在最后

$my_array=array(
数组(0=>“a”,1=>“b”,4=>“c”),
数组(0=>“p”,2=>“k”),
数组(3=>“z”),
);
只需将
usort()
count()
方法结合使用即可

<?php

$my_array = array(
  array(0=>"a", 1=>"b", 4=>"c"),
  array(3=>"z"),
  array(0=>"p", 2=>"k"),
);

usort($my_array, function($a, $b) {
    if (count($a) == count($b)) {
        return 0;
    }
    return (count($a) < count($b)) ? 1 : -1;
});

print_r($my_array);
只需使用
usort()
count()
方法

<?php

$my_array = array(
  array(0=>"a", 1=>"b", 4=>"c"),
  array(3=>"z"),
  array(0=>"p", 2=>"k"),
);

usort($my_array, function($a, $b) {
    if (count($a) == count($b)) {
        return 0;
    }
    return (count($a) < count($b)) ? 1 : -1;
});

print_r($my_array);

这种方法的一种变体可能会起到作用

函数比较($a,$b){
如果(count($a)==count($b))返回0;
返回(计数($a)<计数($b))?-1:1;
}
usort($my_数组,'compare');

这种方法的一种变体可能会奏效

函数比较($a,$b){
如果(count($a)==count($b))返回0;
返回(计数($a)<计数($b))?-1:1;
}
usort($my_数组,'compare');

你试过代码了吗?你试过代码了吗?嗨!我的回答对你有帮助吗?如果你能接受答案,我将不胜感激。非常感谢。你好我的回答对你有帮助吗?如果你能接受答案,我将不胜感激。非常感谢。
function compare($a, $b) {
  if (count($a) == count($b)) return 0;
  return (count($a) < count($b)) ? -1 : 1;
}

usort($my_array, 'compare');