PHP Array.length для двумерного массива (ось Y) - PullRequest
5 голосов
/ 08 марта 2011

Я пытаюсь использовать функцию, посредством которой я вижу, насколько высоким (ось Y) двумерный массив в PHP.Как бы вы предложили мне это сделать?Извините, я новичок в PHP.

Ответы [ 7 ]

23 голосов
/ 08 марта 2011
max(array_map('count', $array2d))
3 голосов
/ 08 марта 2011

Многомерный массив - это просто массив массивов - это не значит, что вы заблокировали прямоугольный набор адресов; больше похоже на поезд, в котором каждую машину можно ставить так высоко, как вам хочется.

Таким образом, «высота» массива, предположительно, является счетчиком самого большого в настоящее время члена массива. @phihag дал отличный способ получить это (max(array_map(count, $array2d))), но я просто хочу убедиться, что вы понимаете, что это значит. Максимальная высота различных массивов в родительском массиве не влияет на размер или емкость любого данного элемента массива.

1 голос
/ 08 марта 2011

Если ось Y является внешним массивом, то на самом деле просто count($array).Второе измерение будет просто count($array[0]), если оно однородно.

1 голос
/ 08 марта 2011
$max = 0;

foreach($array as $val){
 $max = (count($val)>$max?count($val):$max)
}

, где $ max - это количество, которое вы ищете

0 голосов
/ 15 марта 2013

В моем приложении я использовал этот подход.

$array = array();

$array[0][0] = "one";
$array[0][1] = "two";

$array[1][0] = "three";
$array[1][1] = "four";

for ($i=0; isset($array[$i][1]); $i++) {
    echo $array[$i][1];
}

output: twofour

Возможно, это не лучший подход для вашего приложения, но длямой работал отлично.

0 голосов
/ 08 марта 2011

1.размер:

count($arr);

2.размер:

function count2($arr) {
  $dim = 0;

  foreach ($arr as $v) {
    if (count($v) > $dim)
      $dim = count($v);
  }

  return $dim;
}

Поскольку возможно иметь каждый массив / вектор разной длины (в отличие от математической матрицы), у вас естьискать макс.длина.

0 голосов
/ 08 марта 2011

Чтобы подвести итог второго измерения, используйте count в цикле:

$counter = 0;
foreach($var AS $value) {
    $counter += count($value);
}

echo $counter;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...