Многомерные массивы - PullRequest
2 голосов
/ 22 июня 2011

У меня есть многомерный массив php, который выглядит так:

$fields = array( array('input', 'title', 'slug', 'keywords'), 
     array('textarea', 'content'), 
     array('radio', 'active', 'active2', 'active3', 'active4', 'active5')
);

и я обращаюсь к массиву, вот так.

Однако, поскольку некоторые массивы содержат больше значений, чем другие, у меня возникают проблемы, как вы можете видеть ниже $ type <2 ... как это исправить? </p>

for($type = 0; $type < 2; $type++) {
    for($field = 0; $field < 2; $field++) {
        echo $fields[$type][$field];
    }
}

Ответы [ 3 ]

7 голосов
/ 22 июня 2011

Используйте foreach:

foreach ($fields as $values)
{
   foreach ($values as $value) 
   {
       echo $value;
   }
}
1 голос
/ 22 июня 2011

Вы можете использовать array_walk_recursive:

<?php
    array_walk_recursive($fields, 'echo');
?>
0 голосов
/ 22 июня 2011

count() дает вам количество элементов в массиве:

for($type = 0; $type < count($fields); $type++) {
    for($field = 0; $field < count($fields[$type]); $field++) {
        echo $fields[$type][$field];
    }
}

Часто foreach проще в использовании и создаст кодчто вы можете изменить проще.

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