$fetchItem = $itemQuery->fetch(PDO::FETCH_ASSOC);
$fetchLink = $linkQuery->fetch(PDO::FETCH_ASSOC);
Извлекает только первую строку каждого набора результатов.Вам нужно fetchAll
:
$fetchItem = $itemQuery->fetchAll(PDO::FETCH_ASSOC);
$fetchLink = $linkQuery->fetchAll(PDO::FETCH_ASSOC);
и настроить оставшуюся часть кода.
foreach($merged as $entry) {
foreach( $entry as $key => $value ) {
echo "${key} => ${value} <br />";
}
}
РЕДАКТИРОВАТЬ: Вызов fetch
извлекает только первыйстрока набора результатов, тогда как fetchAll
анализирует полный набор результатов в массив.Поэтому объекты выглядят следующим образом:
Array(
[0] => { 'items' => 'Kill Bill' },
[1] => { 'items' => 'Preman' }
)
Array(
[0] => { 'itemLink' => 'Kill Bill' },
[1] => { 'itemLink' => 'Preman' }
)
array_merge
объединяет оба массива в следующее:
Array(
[0] => { 'items' => 'Kill Bill' },
[1] => { 'items' => 'Preman' },
[2] => { 'itemLink' => 'Kill Bill' },
[3] => { 'itemLink' => 'Preman' }
)
Итак, теперь у нас есть двумерный массив.Чтобы просмотреть значения, нам нужно сначала выбрать каждый $entry
, что делается во внешнем foreach
, а затем может получить доступ к структуре ключ / значение во внутреннем foreach
.
, как указано вдругой комментарий: Если вы хотите сохранить связь между items
и itemLink
, вам следует сначала изменить запрос на
SELECT items, itemLink FROM menus