Понимание массивов как часть foreach в php - PullRequest
0 голосов
/ 07 сентября 2010

Имея:

$a as $key => $value;

- это то же самое, что и:

$a=array();

Ответы [ 4 ]

3 голосов
/ 07 сентября 2010

Нет, это не так.Это больше похоже на

list($key, $value) = each($arr);

См. Руководство

foreach ($arr as $key => $value) {
    echo "Key: $key; Value: $value<br />\n";
}

идентично

$arr = array("one", "two", "three");
reset($arr);
while (list($key, $value) = each($arr)) {
    echo "Key: $key; Value: $value<br />\n";
}

Также см.

1 голос
/ 07 сентября 2010

, если у вас есть следующее:

$a = array('foo' => array('element1', 'element2'), 'bar' => array('sub1', 'sub2'));

если вы используете $a as $key=> $value в цикле foreach,

$key будет 'foo', а $value будет array('element1', 'element2') в первой итерации, во второй $key == 'bar' и $value == array('sub1', 'sub2').

1 голос
/ 07 сентября 2010

Прежде всего это должно сказать

foreach($a as $key => $value)

Тогда, насколько я знаю,

foreach($a = array())

не компилируется.

Тем не менее, если вы используете foreach, вы перебираете элементы массива. С ключевым словом «as» вы получаете пары ключ / значение для каждого элемента, где $ key будет индексом, по которому вы можете получить $ value:

$value = $a[$key];

Это ответило на ваш вопрос? Если нет, уточните.

редактирование:
В других языках программирования это будет что-то вроде

foreach($key => $value in $a)

или (C #)

foreach(KeyValuePair<type1, type2> kv in a)

, который, на мой взгляд, более интуитивен, но в основном тот же.

0 голосов
/ 07 сентября 2010

Если вы перебираете массив с помощью foreach, массив является первым выражением в скобках.

Это может быть переменная, например, $ a, или литерал массива, например, массив (1, 2, 3).Следующие циклы идентичны:

С литералом массива:

foreach(array(1, 2, 3) as $number)
    print($number);

С переменной:

$a = array(1, 2, 3);
foreach($a as $number)
    print($number);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...