Присвоение значений массива подмассиву другого массива

0

У меня есть массив в элементе $xml-> channel->, который выводится правильно, если я запускаю:

foreach ($xml->channel->item as $entry){    
    echo $entry->title;
    echo $entry->category;
    echo $entry->pubDate;
}

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

$rows = array(
 'row[0]' => array('title' => 'Test Title','category' => 'Computer', 'date' => 'test date'),
 'row[1]' => array('title' => 'Test Title 2','category' => 'Chemical', 'date' => 'test date'),
);

$form['table'] = array(
                '#type' => 'tableselect',
                '#header' => $header,
                '#options' => $rows,
        );

Я пробовал этот код, но он не работал:

$i=0;
foreach ($xml->channel->item as $rows){
    row[$i][title] = $rows->title;
    row[$i][category] = $rows->category;
    row[$i][date] = $rows->pubDate;
    $i=++;
}

РЕШЕНИЕ:

Копирование решения, которое я понял из комментария ниже к телу:

$rows = array(); 
foreach ($xml->channel->item as $entry) {
   $row['title'] = $entry->title;
   $row['category'] = $entry->category;
   $row['date'] = $entry->pubDate;

 array_push($rows, $row);
}
Теги:
arrays

1 ответ

0

Наконец понял. Надеюсь, что это спасет других, которые ударят по аналогичной задаче:

$rows = array();
  foreach ($xml->channel->item as $entry) {    
   $row['title'] = $entry->title;
   $row['category'] = $entry->category;
   $row['date'] = $entry->pubDate;
array_push($rows, $row);
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню