Правильный способ получения данных из многомерного массива

Привет, это мой массив данных:

Я пытаюсь получить выделенную часть изображения.

Это ассоциативный массив, поэтому я пробовал это:

<?php

for($i = 0 ; $i < count($ad['all_atr']) ; $i++)
{
$atr_n= $ad[$i]['all_atr']['atr_n'];
$atr_v= $ad[$i]['all_atr']['atr_v'];
?>
<tr>
<td><?php echo $atr_n;?></td>
<td><?php echo $atr_v;?></td>
</tr>
<?php
....

но выдает ошибку ‘Неопределенное смещение: 0’

0

Решение

Чтобы получить к нему доступ, сначала укажите массив, затем индекс:

for($i = 0; $i < count($ad['all_atr']); $i++)
{
$atr_n = $ad['all_atr'][$i]['a_name'];
$atr_v = $ad['all_atr'][$i]['a_val'];
}

Или с использованием foreach:

foreach($ad['all_atr'] as $values) {
$atr_n = $values['a_name'];
$atr_v = $values['a_val'];
}
0

Другие решения

Просто убедитесь, что данные установлены и не пусты, прежде чем добавлять их в $ atr_n & $ atr_v:

if (isset($ad['all_atr'][$i]['a_name']) && isset($ad['all_atr'][$i]['a_val']) && !empty($ad['all_atr'][$i]['a_name']) && !empty($ad['all_atr'][$i]['a_val'])) {
$atr_n = $ad['all_atr'][$i]['a_name'];
$atr_v = $ad['all_atr'][$i]['a_val'];
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector