Самодельная функция внутри цикла foreach? - PullRequest
0 голосов
/ 04 февраля 2012

У меня есть большая функция, основанная на семиуровневом многомерном массиве?

Когда я вызываю функцию в a для каждого, вот так

 foreach($items as $item) {
      makeItem($item, $items[$item]);
 }

Это всегда терпит неудачу, почему это так, хотя, если я называю их за пределами foreach, это нормально и работает?

Ответы [ 3 ]

2 голосов
/ 04 февраля 2012

Хорошо, теперь, когда вы немного изменили код ... Проблема в том, что когда вы используете цикл foreach, как вы это делали, переменная цикла не является индексом массива, это элемент в массиве,Ваше намерение все еще неясно для меня, но вы можете захотеть сделать что-то вроде:

foreach($items as $key => $item) {
      makeItem($item, $items[$key]);
}

... что все равно не имеет смысла, потому что вы будете проходить через $item дважды.

1 голос
/ 04 февраля 2012

Трудно сказать по этому вопросу, но если вы спрашиваете, как вызвать свою собственную функцию из цикла foreach и передать элемент этой функции, я считаю, что код, который вы ищете:

foreach ($items as $item) {
        makeItem($item);
    }

http://php.net/manual/en/control-structures.foreach.php

0 голосов
/ 04 февраля 2012

Почему вы написали функцию три раза в foreach.it, ее можно вызывать каждый раз, написав ее только один раз. Или не могли бы вы описать или опубликовать еще один фрагмент кода.

...