【问题标题】:sort array of arrays by number of elements in sub array按子数组中的元素数对数组数组进行排序
【发布时间】:2014-03-14 16:58:03
【问题描述】:

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

示例:

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

期望的结果: 具有 3 个元素的子数组排在第一位,具有 1 个元素的子数组排在最后。

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

【问题讨论】:

  • 你试过任何代码了吗?

标签: php arrays sorting


【解决方案1】:

只需将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);

Example fiddle

【讨论】:

  • 嗨!我的回答对你有帮助吗?如果您能接受答案,我将不胜感激。谢谢!
【解决方案2】:

这样的变体可能会起作用。 usort

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

usort($my_array, 'compare');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2013-01-20
    • 2019-09-01
    • 1970-01-01
    相关资源
    最近更新 更多