-3

我有这个数组:

$number= array(

                array([0]=>2,[1]=>2)
                array([0]=>2,[1]=>2,[2]=>2,[3]=>2)
                array([0]=>2,[1]=>2,[2]=>2)
                array([0]=>2,[1]=>2)
)

我想要这个数组中的最大索引。因为这个数组是 4。

4

5 回答 5

8

你可能是这个意思:

echo max(array_map('count', $number));
于 2012-12-16T06:46:34.873 回答
1

编写一个遍历数组的循环。对于数组中的每个数组,获取该数组中的元素数,如果它大于迄今为止的最大值(例如$max),则设置$max为元素数。然后,当您完成对数组的循环时,$max就有了答案。

于 2012-12-16T06:45:34.687 回答
0

使用 count() 函数:

$max = count($number); // returns 4

更新

你的问题不够清楚。提供的评论和答案表明您想要获取数组中存在的元素数量,这些元素的元素多于数组中的其他$number数组。在这种情况下,@xdazz答案是最适合您的。$number像这样编写数组会更好、更正确:

$number = array(
    array(1, 2),
    array(1, 2, 3, 4, 5),
    array(1, 2, 3),
    array(1, 2)
);
于 2012-12-16T06:43:51.143 回答
0

此代码经过测试并适用于您的数组。当然,带有计数函数的 array_map 是维度 1 最大计数的最佳解决方案

<?php
    $number= array(

                    array(0=>2,1=>2),
                    array(0=>2,1=>2,2=>2,3=>2),
                    array(0=>2,1=>2,2=>2),
                    array(0=>2,1=>2),
    );

    $ak = array_values($number);
    for($i;$i<count($number);$i++){
    $c[] = count($ak[$i]);
    }
    echo max($c);
    ?>
于 2012-12-16T06:53:52.300 回答
0

您可以尝试以下代码:

$data = array(
    "apples" =>
        array("red", "yellow", "pineapples","enam"),
    "bananas" =>
        array("small", "medium", "big","enam","enam"),
    "vegs" =>
        array("potatoes", "carrots", "onions")
);

foreach($data as $in_arr){
    $count = count($in_arr);
    if($count>$max)$max = $count;
}
echo "The max:".$max;    
于 2012-12-16T07:12:04.470 回答