Не могу получить переменные с двух foreach

412
06 февраля 2017, 18:59

Добрый день! Помогите начинающему пожалуйста! Получаю через api Яндекс.Диск список папок:

        $result = json_decode($result,true);
    foreach ($result['_embedded']['items'] as $file) { 
$extpath =  $file['name'];

Потом для каждой папки надо получить список файлов, я делаю еще один foreach внутри этого:

$result3 = json_decode($result3,true);
 foreach ($result3['_embedded']['items'] as $file3) {
          $extpath2 = $file3['name'];

И в конце всех циклов если я делаю return $extpath; то отображается только список папок. А если return $extpath;, то только список файлов во всех папках.

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

Folder1 >> File1, File2
Folder2 >> File1, File2, File3

Спасибо!

Answer 1

Вам необходимо создать ассоциативный массив: Примерный метод:

<?php
$folder = array();
$result = json_decode($result,true);
foreach ($result['_embedded']['items'] as $file) { 
$extpath =  $file['name'];
$result3 = json_decode($result3,true);
 foreach ($result3['_embedded']['items'] as $file3) {
          $extpath2 = $file3['name'];
array_push($folder[$extpath],$extpath2); 
}
}
print_r($folder);
?>

Так как вы показали обрывки кода(непонятно откуда у вас $result3 ), я написал общую логику что вам надо сделать для получения результата.

Folder1 >> File1, File2 
Folder2 >> File1, File2, File3

PS В дальнейшем старайтесь полностью показывать код.

READ ALSO
Контракты в Laravel 5.4

Контракты в Laravel 5.4

Где в Laravel 54 хранятся контракты?

467
Не удаляются куки, с помощью формы

Не удаляются куки, с помощью формы

почему, после того, как создать куку и если нажать на выход, то кука не удаляется?

407