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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽