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

0

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

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

Это ассоциативный массив, который я до сих пор пробовал:

<?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"

Теги:
arrays
associative-array

2 ответа

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
  • 1
    @Umerm измените его на a_name
Показать ещё 2 комментария
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'];
}
  • 1
    Измените atr_n и atr_v на a_name и a_val соответственно.
  • 0
    @ Амаль Мурали, Да, исправлено, я видел подсвеченную часть вопроса, поэтому я использовал их. Спасибо за уведомление.

Ещё вопросы

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