Olga93
Новичок
Существую несколько постов, в них содержатся картинки, количество картинок и размеры этих картинок тоже может быть несколько.
Вообщем такой формат.
Items -> [index] -> attachments -> [index2] -> photo -> sizes -> [index3] -> (url,width,height);
Где
Items -> общий раздел со всеми постами
Index -> номер поста
Attachments -> прикрепленные файлы
Index2 -> номер прикрепленного файла
Photo -> тип файла (может быть и видео, но мне пока нужно фото)
Sizes -> размеры фотографий (массив)
Index3 -> номер массива size.
(url, width, height) – содержание ячеек, url-адрес, ширина и высота.
Структура моих данных json, которые отображаются через сервис http://jsonviewer.stack.hu.

Мне нужно каким-то образом запустить несколько циклов и получить все картинки для одного поста, а также все размеры этих картинок и так для каждого поста. Такая структура сложная, что я уже путаться стала. Данные почему-то выводятся так, сначала первая итерация, для первого поста, вторая итерация прибавляются данные второго поста, потом еще раз дописываются данные 3-его поста и т.д.
Вот мой код полностью:
Вообщем такой формат.
Items -> [index] -> attachments -> [index2] -> photo -> sizes -> [index3] -> (url,width,height);
Где
Items -> общий раздел со всеми постами
Index -> номер поста
Attachments -> прикрепленные файлы
Index2 -> номер прикрепленного файла
Photo -> тип файла (может быть и видео, но мне пока нужно фото)
Sizes -> размеры фотографий (массив)
Index3 -> номер массива size.
(url, width, height) – содержание ячеек, url-адрес, ширина и высота.
Структура моих данных json, которые отображаются через сервис http://jsonviewer.stack.hu.

Мне нужно каким-то образом запустить несколько циклов и получить все картинки для одного поста, а также все размеры этих картинок и так для каждого поста. Такая структура сложная, что я уже путаться стала. Данные почему-то выводятся так, сначала первая итерация, для первого поста, вторая итерация прибавляются данные второго поста, потом еще раз дописываются данные 3-его поста и т.д.
Вот мой код полностью:
PHP:
<?php
include "config.php";
$ourData = file_get_contents("test.json");
$outcls=json_decode($ourData,true);
$posts = $outcls["response"]["items"];
foreach($posts as $post)
{
$post_id = $post["id"];
$post1 = $post["attachments"];
$photo = [];
$video = [];
$link = [];
foreach ($post1 as $atch)
{
if($atch["type"]=="photo")
{
array_push($photo,$atch["type"]);
}
if($atch["type"]=="video")
{
array_push($video,$atch["type"]);
}
}
$data_photo = [];
foreach ($post1 as $atch2)
{
if($atch2["type"]=="photo")
{
// echo "<br>photo=".count($photo)."</br>";
if(count($photo)<2)
{
//echo "<br>test";
break;
}
if(count($photo>1))
{
array_push($data_photo,$atch2["photo"]["sizes"]);
// print_r($data_photo);
//$data_photo - Первый элемент массива(0) - это номер фотографии поста
//второй элемент массива(1) - это номер размера фотографии так как в посте предусмотрено фото нескольких
//размеров ["height"] - размер фото
//************************************* пример
//**$data_photo[0][1]["height"];
//*************************************
$size = [];
for ($i = 0; $i < count($photo); $i++)
{
echo "<br>photo=".count($photo)."</br>";
for ($j = 0; $j < count($data_photo[$i]); $j++)
{
//print_r($data_photo[$i][$j]);
//array_push($size ,$data_photo[$i][$j]);
$size[$i][$j] = $data_photo[$i][$j];
echo $size[$i][$j]["url"]."<br>";
}
}
//echo "[".$sz."]"."<br>";
}
}
if($atch2["type"]=="video")
{
echo "<br>video=".count($video)."</br>";
break;
}
}
}
?>