Цикл ассоциативного массива с тем же значением - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть ассоциативный массив, в который я положил DomElements. Я хочу просто восстановить ячейку из таблицы, поэтому я зацикливаю строки ($ materie) и пытаюсь извлечь для каждой ячейки 9 столбцов. Проблема в том, что результат $ cell [$ o] [9] -> nodeValue (который я положил в $ DTO ['materie'] [$ o] ['prenotato']) одинаков для каждого хода цикл: он принимает значение первого элемента и сохраняет его.

   for($o = 0; $o < sizeof($materie); $o++) {

        $DTO['materie'][$o] = $materie[$o+1];
        /**ROWS */

        $cell = array();
        $cell[$o] = $parserCommons->findElementsByTag($table[0], 'td');

        $DTO['materie'][$o]['prenotato'] = $cell[$o][9]->nodeValue; 

    }


    return $DTO;

это тело функции:

public function findElementsByTag($DOMArray, $tagName)
{
    $output = $DOMArray->getElementsByTagname($tagName);
    return $output;
}

1 Ответ

0 голосов
/ 01 ноября 2018

Проблема в вызове ...

$cell[$o] = $parserCommons->findElementsByTag($table[0], 'td');

Таким образом, всегда используется $parserCommons в качестве начальной точки для поиска тегов <td>. Так что это всегда найдет один и тот же набор полей.

Если ваши строки в $materie, то я думаю, что вам нужно

$cell[$o] = $materie[$o+1]->findElementsByTag($table[0], 'td');

, чтобы использовать текущую строку для начальной точки.

...