parschakov
@parschakov
Начинающий изучать PHP и JS

Как перебрать такой массив и получить данные?

Здравствуйте. Как перебрать такой массив (не весь а только 'two'):
array:2 [▼
  "one" => "<p>Loop<br></p>"
  "two" => array:2 [▼
    "data" => array:1 [▼
      1 => "Dale",
      2 => "Moon",
      3 => "Sun",
    ]
    "rate" => array:1 [▼
      1 => "345",
      2 => "456",
      3 => "567",
    ]
  ]
]


и получить значения data и rate за одну итерацию?

Пробую к примеру так:
foreach ($arr['two'] as $ar) {
    echo $ar['data'].$ar['rate'];
}

но получаю ошибку "Undefined index: data"
  • Вопрос задан
  • 99 просмотров
Решения вопроса 2
@Yan-s
Если бы вы дампнули $ar, то поняли бы почему так.

$arr['two'] - это массив из двух эллементов "data" и "rate"
Перебирая этот массив вы полуичите в $ar сперва массив "data" с ключами 1, 2, 3
Затем массив "rate" с ключами 1, 2, 3

Если уточните что именно вы хотите перебрать и получить, можно будет посоветовать как это лучше сделать.

UPD
foreach ($arr['two']['data'] as $key => $val) {
    echo $val . ' ' . $arr['two']['rate'][$key], PHP_EOL;
}
Ответ написан
Maksclub
@Maksclub Куратор тега PHP
maksfedorov.ru
Чтобы склеить элементы из двух подмассивов — ЕСЛИ КЛЮЧИ У НИХ ТОЧНОЕ СОВПДАЕНИЕ ДАЮТ
то можно так

// Считаем кол-во элементов в data
$count = count($arr['two']['data]);

// Выводим нужные данные нам
for($i=0;$i <$count; $i++ ) {
    echo $arr['two']['data'][$i] . ' ' . arr['two']['rate'][$i] . PHP_EOL;
}


Получим такое:
Dale 345 
Moon 456
Sun 567
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы