За последние 24 часа нас посетили 21670 программистов и 1022 робота. Сейчас ищут 624 программиста ...

Массив

Тема в разделе "PHP для новичков", создана пользователем ghostcom, 4 дек 2016.

Метки:
  1. ghostcom

    ghostcom Активный пользователь

    С нами с:
    17 фев 2016
    Сообщения:
    92
    Симпатии:
    2
    Код (Text):
    1.  
    2. array(1) { [0]=> array(9) { ["denial"]=> float(0.0769) ["visits"]=> int(13) ["depth"]=> float(1.3846) ["chld"]=> array(3) { [0]=> array(9) { ["denial"]=> float(0.0909) ["visits"]=> int(11) ["depth"]=> float(1.1818) ["chld"]=> array(4) { [0]=> array(9) { ["denial"]=> float(0.2) ["visits"]=> int(5) ["depth"]=> float(1) ["chld"]=> array(3) { [0]=> array(9) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(1) ["chld"]=> array(1) { [0]=> array(9) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(1) ["chld"]=> array(1) { [0]=> array(8) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(1) ["page_views"]=> int(1) ["visit_time"]=> int(15) ["name"]=> string(29) "Нижний Новгород" ["region_type"]=> string(4) "city" ["id"]=> string(2) "47" } } ["page_views"]=> int(1) ["visit_time"]=> int(15) ["name"]=> string(59) "Городской округ Нижний Новгород" ["region_type"]=> string(9) "district2" ["id"]=> string(6) "120911" } } ["page_views"]=> int(1) ["visit_time"]=> int(15) ["name"]=> string(41) "Нижегородская область" ["region_type"]=> string(11) "fed_subject" ["id"]=> string(5) "11079" } [1]=> array(9) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(1) ["chld"]=> array(1) { [0]=> array(9) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(1) ["chld"]=> array(1) { [0]=> array(8) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(1) ["page_views"]=> int(1) ["visit_time"]=> int(138) ["name"]=> string(10) "Пермь" ["region_type"]=> string(4) "city" ["id"]=> string(2) "50" } } ["page_views"]=> int(1) ["visit_time"]=> int(138) ["name"]=> string(40) "Городской округ Пермь" ["region_type"]=> string(9) "district2" ["id"]=> string(6) "120888" } } ["page_views"]=> int(1) ["visit_time"]=> int(138) ["name"]=> string(25) "Пермский край" ["region_type"]=> string(11) "fed_subject" ["id"]=> string(5) "11108" } [2]=> array(9) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(1) ["chld"]=> array(1) { [0]=> array(9) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(1) ["chld"]=> array(1) { [0]=> array(8) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(1) ["page_views"]=> int(1) ["visit_time"]=> int(99) ["name"]=> string(12) "Самара" ["region_type"]=> string(4) "city" ["id"]=> string(2) "51" } } ["page_views"]=> int(1) ["visit_time"]=> int(99) ["name"]=> string(42) "Городской округ Самара" ["region_type"]=> string(9) "district2" ["id"]=> string(6) "120861" } } ["page_views"]=> int(1) ["visit_time"]=> int(99) ["name"]=> string(33) "Самарская область" ["region_type"]=> string(11) "fed_subject" ["id"]=> string(5) "11131" } } ["page_views"]=> int(5) ["visit_time"]=> int(54) ["name"]=> string(56) "Приволжский федеральный округ" ["region_type"]=> string(5) "state" ["id"]=> string(2) "40" } [1]=> array(9) { ["denial"]=> float(0) ["visits"]=> int(3) ["depth"]=> float(1.6667) ["chld"]=> array(2) { [0]=> array(9) { ["denial"]=> float(0) ["visits"]=> int(2) ["depth"]=> float(2) ["chld"]=> array(1) { [0]=> array(9) { ["denial"]=> float(0) ["visits"]=> int(2) ["depth"]=> float(2) ["chld"]=> array(1) { [0]=> array(8) { ["denial"]=> float(0) ["visits"]=> int(2) ["depth"]=> float(2) ["page_views"]=> int(4) ["visit_time"]=> int(26) ["name"]=> string(10) "Томск" ["region_type"]=> string(4) "city" ["id"]=> string(2) "67" } } ["page_views"]=> int(4) ["visit_time"]=> int(26) ["name"]=> string(40) "Городской округ Томск" ["region_type"]=> string(9) "district2" ["id"]=> string(6) "121097" } } ["page_views"]=> int(4) ["visit_time"]=> int(26) ["name"]=> string(29) "Томская область" ["region_type"]=> string(11) "fed_subject" ["id"]=> string(5) "11353" } [1]=> array(9) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(1) ["chld"]=> array(1) { [0]=> array(9) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(1) ["chld"]=> array(1) { [0]=> array(8) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(1) ["page_views"]=> int(1) ["visit_time"]=> int(16) ["name"]=> string(15) "Улан-Удэ" ["region_type"]=> string(4) "city" ["id"]=> string(3) "198" } } ["page_views"]=> int(1) ["visit_time"]=> int(16) ["name"]=> string(45) "Городской округ Улан-Удэ" ["region_type"]=> string(9) "district2" ["id"]=> string(6) "121100" } } ["page_views"]=> int(1) ["visit_time"]=> int(16) ["name"]=> string(35) "Республика Бурятия" ["region_type"]=> string(11) "fed_subject" ["id"]=> string(5) "11330" } } ["page_views"]=> int(5) ["visit_time"]=> int(22) ["name"]=> string(52) "Сибирский федеральный округ" ["region_type"]=> string(5) "state" ["id"]=> string(2) "59" } [2]=> array(9) { ["denial"]=> float(0) ["visits"]=> int(2) ["depth"]=> float(1) ["chld"]=> array(1) { [0]=> array(9) { ["denial"]=> float(0) ["visits"]=> int(2) ["depth"]=> float(1) ["chld"]=> array(2) { [0]=> array(8) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(1) ["page_views"]=> int(1) ["visit_time"]=> int(15) ["name"]=> string(12) "Москва" ["region_type"]=> string(4) "city" ["id"]=> string(3) "213" } [1]=> array(9) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(1) ["chld"]=> array(1) { [0]=> array(8) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(1) ["page_views"]=> int(1) ["visit_time"]=> int(15) ["name"]=> string(10) "Дубна" ["region_type"]=> string(4) "city" ["id"]=> string(3) "215" } } ["page_views"]=> int(1) ["visit_time"]=> int(15) ["name"]=> string(40) "Городской округ Дубна" ["region_type"]=> string(9) "district2" ["id"]=> string(6) "120992" } } ["page_views"]=> int(2) ["visit_time"]=> int(15) ["name"]=> string(51) "Москва и Московская область" ["region_type"]=> string(11) "fed_subject" ["id"]=> string(1) "1" } } ["page_views"]=> int(2) ["visit_time"]=> int(15) ["name"]=> string(56) "Центральный федеральный округ" ["region_type"]=> string(5) "state" ["id"]=> string(1) "3" } [3]=> array(9) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(1) ["chld"]=> array(1) { [0]=> array(9) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(1) ["chld"]=> array(1) { [0]=> array(9) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(1) ["chld"]=> array(1) { [0]=> array(8) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(1) ["page_views"]=> int(1) ["visit_time"]=> int(16) ["name"]=> string(12) "Тюмень" ["region_type"]=> string(4) "city" ["id"]=> string(2) "55" } } ["page_views"]=> int(1) ["visit_time"]=> int(16) ["name"]=> string(42) "Городской округ Тюмень" ["region_type"]=> string(9) "district2" ["id"]=> string(6) "121134" } } ["page_views"]=> int(1) ["visit_time"]=> int(16) ["name"]=> string(33) "Тюменская область" ["region_type"]=> string(11) "fed_subject" ["id"]=> string(5) "11176" } } ["page_views"]=> int(1) ["visit_time"]=> int(16) ["name"]=> string(52) "Уральский федеральный округ" ["region_type"]=> string(5) "state" ["id"]=> string(2) "52" } } ["page_views"]=> int(13) ["visit_time"]=> int(35) ["name"]=> string(12) "Россия" ["region_type"]=> string(7) "country" ["id"]=> string(3) "225" } [1]=> array(9) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(3) ["chld"]=> array(1) { [0]=> array(8) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(3) ["page_views"]=> int(3) ["visit_time"]=> int(161) ["name"]=> string(14) "Украина" ["region_type"]=> string(7) "country" ["id"]=> string(3) "187" } } ["page_views"]=> int(3) ["visit_time"]=> int(161) ["name"]=> string(6) "СНГ" ["region_type"]=> string(6) "region" ["id"]=> string(3) "166" } [2]=> array(9) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(2) ["chld"]=> array(1) { [0]=> array(9) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(2) ["chld"]=> array(1) { [0]=> array(9) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(2) ["chld"]=> array(1) { [0]=> array(8) { ["denial"]=> float(0) ["visits"]=> int(1) ["depth"]=> float(2) ["page_views"]=> int(2) ["visit_time"]=> int(401) ["name"]=> string(8) "Рига" ["region_type"]=> string(4) "city" ["id"]=> string(5) "11474" } } ["page_views"]=> int(2) ["visit_time"]=> int(401) ["name"]=> string(12) "Латвия" ["region_type"]=> string(7) "country" ["id"]=> string(3) "206" } } ["page_views"]=> int(2) ["visit_time"]=> int(401) ["name"]=> string(25) "Страны Балтии" ["region_type"]=> string(6) "region" ["id"]=> string(3) "980" } } ["page_views"]=> int(2) ["visit_time"]=> int(401) ["name"]=> string(12) "Европа" ["region_type"]=> string(9) "continent" ["id"]=> string(3) "111" } } ["page_views"]=> int(18) ["visit_time"]=> int(73) ["name"]=> string(14) "Евразия" ["region_type"]=> string(9) "continent" ["id"]=> string(5) "10001" } }

    Помогите пожалуйста. Ни как не разберусь как в цикле вывести данный массив. Статьи перечитал все в нете, не помогло) Уж больно сложная структура. Прошу помощи!
    Это массив из Яндекс Метрики если что.

    Вот в читабельном виде
     

    Вложения:

    • ARRAY_YM.txt
      Размер файла:
      33,6 КБ
      Просмотров:
      6
  2. rewuxiin

    rewuxiin Активный пользователь

    С нами с:
    17 апр 2012
    Сообщения:
    611
    Симпатии:
    87
    нужно создать функцию которая будет внутри вызывать сама себя до тех пор пока результат не пуст.
    почитай статьи про Рекурсию.

    я в свое время начинаний так дерево комментариев написал - только потом я узнал, что это называется рекурсия
     
    denis01 и ghostcom нравится это.
  3. ghostcom

    ghostcom Активный пользователь

    С нами с:
    17 фев 2016
    Сообщения:
    92
    Симпатии:
    2
    Да, спасибо за ответ!!! Уже начал потихоньку идти в нужном направлении. Позже напишу что получилось.
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    @ghostcom когда делаешь var_export/var_dump массива, то если смотришь результат в браузере, то результат помещай в тег <pre> или просто смотри на массив в исходном коде страницы в браузере, ты там сможешь по отступам, понять иерархию в массиве, после небольшой тренировки, сможешь уже писать цепочку иерархии для получения нужной информации из массива.
     
    ghostcom нравится это.
  5. ghostcom

    ghostcom Активный пользователь

    С нами с:
    17 фев 2016
    Сообщения:
    92
    Симпатии:
    2
    Так и делаю. При создании темы бала ошибка "длинное сообщение". Поэтому структуру прикрепил вложением.
     
  6. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @ghostcom, присмотрись к функциям для работы с массивами, возможно получится сделать все проще.

    PHP:
    1. $arr = array(
    2.     array(
    3.         'denial' => 0.0769,
    4.         'visits' => 13,
    5.         'depth' => 1.3846,
    6.         'chld' => array(
    7.             array(
    8.                 'denial' => 0.0769,
    9.                 'visits' => 13,
    10.                 'depth' => 1.3846)
    11.         )
    12.     )
    13. );
    14.  
    15. function prod($carry, $item) {
    16.     if (is_array($item)) {
    17.         array_reduce($item, 'prod');
    18.     } else {
    19.         echo "<pre>";
    20.         echo $item;
    21.     }
    22. }
    23.  
    24. array_reduce($arr, 'prod');
    Вот к примеру как перебирает примерно как у тебя массив array_reduce.
     
    ghostcom нравится это.
  7. ghostcom

    ghostcom Активный пользователь

    С нами с:
    17 фев 2016
    Сообщения:
    92
    Симпатии:
    2
    @mahmuzar Работает, но выводит все подряд. Как теперь вывести только те где ключ region_type равен city?
     
  8. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @ghostcom, а что именно нужно вывести?
     
  9. ghostcom

    ghostcom Активный пользователь

    С нами с:
    17 фев 2016
    Сообщения:
    92
    Симпатии:
    2
    @mahmuzar Пока только города и количество просмотров
    --- Добавлено ---
    Например

    Москва - 22
    Томск - 3
    Саратов -5
     
  10. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @ghostcom, можешь сериализовать массив и дать эту строку?
    --- Добавлено ---
    можно и вывод var_export тоже выложить
     
  11. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    PHP:
    1. $arr = array(
    2.     array(
    3.         'denial' => 0.0769,
    4.         'visits' => 13,
    5.         'depth' => 1.3846,
    6.         'chld' => array(
    7.             array(
    8.                 'denial' => 0.0769,
    9.                 'visits' => 13,
    10.                 'depth' => 1.3846,
    11.                 'page_views' => 1,
    12.                 'visit_time' => 15,
    13.                 'name' => "Нижний Новгород",
    14.                 'region_type' => "city",
    15.                 'id' => 47,
    16.             )
    17.         ),
    18.         'page_views' => 1,
    19.         'visit_time' => 15,
    20.         'name' => "Москва",
    21.         'region_type' => "city",
    22.         'id' => 47,
    23.     )
    24. );
    25.  
    26. function prod($carry, $item) {
    27.     if (is_array($item)) {
    28.         if (array_search('city', $item)) {
    29.             foreach ($item as $key => $val) {
    30.                 if (!is_array($val)) {
    31.                     echo $key . ":" . $val."<br>";
    32.                 }
    33.             }
    34.             echo "<br>";
    35.         }
    36.         array_reduce($item, 'prod');
    37.     } else {
    38.        
    39.     }
    40. }
    41.  
    42. array_reduce($arr, 'prod');
    Не самое изящное решение, но работает. Возможно при больших объемах проблемы с производительностью, проверь. Вроде выводит результат, который требуется тебе.
     
  12. ghostcom

    ghostcom Активный пользователь

    С нами с:
    17 фев 2016
    Сообщения:
    92
    Симпатии:
    2
    Спасибо. Сейчас проверю!
     
  13. ghostcom

    ghostcom Активный пользователь

    С нами с:
    17 фев 2016
    Сообщения:
    92
    Симпатии:
    2
    Что то не то. Не фильтрует. выводит все без исключения. Надо как то так
    PHP:
    1. if (array_search('region_type', 'city')) {
    2. echo ?????;
    3. }
    Но пока недогоняю

    у нас city не ключ, а значение
     
  14. ghostcom

    ghostcom Активный пользователь

    С нами с:
    17 фев 2016
    Сообщения:
    92
    Симпатии:
    2
    Вот так работает, но это уже утопия:D:D:D
    PHP:
    1. foreach($data as $item) {
    2.     if (isset($item['chld'])) {
    3.         foreach($item['chld'] as $item) {
    4.             if (isset($item['chld'])) {
    5.                 foreach($item['chld'] as $item) {
    6.                     if (isset($item['chld'])) {
    7.                         foreach($item['chld'] as $item) {
    8.                             if (isset($item['chld'])) {
    9.                                 foreach($item['chld'] as $item) {
    10.                                     if (isset($item['chld'])) {
    11.                                         foreach($item['chld'] as $item) {
    12.                                             if (isset($item['chld'])) {
    13.                                                 foreach($item['chld'] as $item) {
    14.                                                     if (isset($item['chld'])) {
    15.                                                         foreach($item['chld'] as $item) {
    16.                                                         }
    17.                                                     }
    18.                                                     else {
    19.                                                         echo $item['name'] . " - " . $item['visits'] . "<br />";
    20.                                                     }
    21.                                                 }
    22.                                             }
    23.                                             else {
    24.                                                 echo $item['name'] . " - " . $item['visits'] . "<br />";
    25.                                             }
    26.                                         }
    27.                                     }
    28.                                     else {
    29.                                         echo $item['name'] . " - " . $item['visits'] . "<br />";
    30.                                     }
    31.                                 }
    32.                             }
    33.                             else {
    34.                                 echo $item['name'] . " - " . $item['visits'] . "<br />";
    35.                             }
    36.                         }
    37.                     }
    38.                     else {
    39.                         echo $item['name'] . " - " . $item['visits'] . "<br />";
    40.                     }
    41.                 }
    42.             }
    43.             else {
    44.                 echo $item['name'] . " - " . $item['visits'] . "<br />";
    45.             }
    46.         }
    47.     }
    48.     else {
    49.         echo $item['name'] . " - " . $item['visits'] . "<br />";
    50.     }
    51. }
    Выводит только конечные вложения массива
     
  15. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @ghostcom,
     
    denis01 нравится это.
  16. ghostcom

    ghostcom Активный пользователь

    С нами с:
    17 фев 2016
    Сообщения:
    92
    Симпатии:
    2
    PHP:
    1. a:1:{i:0;a:9:{s:6:"denial";d:0.10000000000000001;s:6:"visits";i:10;s:5:"depth";d:2.6000000000000001;s:4:"chld";a:2:{i:0;a:9:{s:6:"denial";d:0.1111;s:6:"visits";i:9;s:5:"depth";d:1.1111;s:4:"chld";a:3:{i:0;a:9:{s:6:"denial";d:0;s:6:"visits";i:4;s:5:"depth";d:1.25;s:4:"chld";a:1:{i:0;a:9:{s:6:"denial";d:0;s:6:"visits";i:4;s:5:"depth";d:1.25;s:4:"chld";a:2:{i:0;a:8:{s:6:"denial";d:0;s:6:"visits";i:3;s:5:"depth";d:1.3332999999999999;s:10:"page_views";i:4;s:10:"visit_time";i:269;s:4:"name";s:12:"Москва";s:11:"region_type";s:4:"city";s:2:"id";s:3:"213";}i:1;a:9:{s:6:"denial";d:0;s:6:"visits";i:1;s:5:"depth";d:1;s:4:"chld";a:1:{i:0;a:8:{s:6:"denial";d:0;s:6:"visits";i:1;s:5:"depth";d:1;s:10:"page_views";i:1;s:10:"visit_time";i:53;s:4:"name";s:22:"Красногорск";s:11:"region_type";s:4:"city";s:2:"id";s:5:"10735";}}s:10:"page_views";i:1;s:10:"visit_time";i:53;s:4:"name";s:37:"Красногорский район";s:11:"region_type";s:9:"district2";s:2:"id";s:5:"98590";}}s:10:"page_views";i:5;s:10:"visit_time";i:215;s:4:"name";s:51:"Москва и Московская область";s:11:"region_type";s:11:"fed_subject";s:2:"id";s:1:"1";}}s:10:"page_views";i:5;s:10:"visit_time";i:215;s:4:"name";s:56:"Центральный федеральный округ";s:11:"region_type";s:5:"state";s:2:"id";s:1:"3";}i:1;a:9:{s:6:"denial";d:0.33329999999999999;s:6:"visits";i:3;s:5:"depth";d:1;s:4:"chld";a:1:{i:0;a:9:{s:6:"denial";d:0.33329999999999999;s:6:"visits";i:3;s:5:"depth";d:1;s:4:"chld";a:1:{i:0;a:9:{s:6:"denial";d:0.33329999999999999;s:6:"visits";i:3;s:5:"depth";d:1;s:4:"chld";a:1:{i:0;a:8:{s:6:"denial";d:0.33329999999999999;s:6:"visits";i:3;s:5:"depth";d:1;s:10:"page_views";i:3;s:10:"visit_time";i:10;s:4:"name";s:10:"Томск";s:11:"region_type";s:4:"city";s:2:"id";s:2:"67";}}s:10:"page_views";i:3;s:10:"visit_time";i:10;s:4:"name";s:40:"Городской округ Томск";s:11:"region_type";s:9:"district2";s:2:"id";s:6:"121097";}}s:10:"page_views";i:3;s:10:"visit_time";i:10;s:4:"name";s:29:"Томская область";s:11:"region_type";s:11:"fed_subject";s:2:"id";s:5:"11353";}}s:10:"page_views";i:3;s:10:"visit_time";i:10;s:4:"name";s:52:"Сибирский федеральный округ";s:11:"region_type";s:5:"state";s:2:"id";s:2:"59";}i:2;a:9:{s:6:"denial";d:0;s:6:"visits";i:2;s:5:"depth";d:1;s:4:"chld";a:1:{i:0;a:9:{s:6:"denial";d:0;s:6:"visits";i:1;s:5:"depth";d:1;s:4:"chld";a:1:{i:0;a:8:{s:6:"denial";d:0;s:6:"visits";i:1;s:5:"depth";d:1;s:10:"page_views";i:1;s:10:"visit_time";i:138;s:4:"name";s:29:"Санкт-Петербург";s:11:"region_type";s:4:"city";s:2:"id";s:1:"2";}}s:10:"page_views";i:1;s:10:"visit_time";i:138;s:4:"name";s:74:"Санкт-Петербург и Ленинградская область";s:11:"region_type";s:11:"fed_subject";s:2:"id";s:5:"10174";}}s:10:"page_views";i:2;s:10:"visit_time";i:94;s:4:"name";s:63:"Северо-Западный федеральный округ";s:11:"region_type";s:5:"state";s:2:"id";s:2:"17";}}s:10:"page_views";i:10;s:10:"visit_time";i:120;s:4:"name";s:12:"Россия";s:11:"region_type";s:7:"country";s:2:"id";s:3:"225";}i:1;a:9:{s:6:"denial";d:0;s:6:"visits";i:1;s:5:"depth";d:16;s:4:"chld";a:1:{i:0;a:8:{s:6:"denial";d:0;s:6:"visits";i:1;s:5:"depth";d:16;s:10:"page_views";i:16;s:10:"visit_time";i:523;s:4:"name";s:14:"Украина";s:11:"region_type";s:7:"country";s:2:"id";s:3:"187";}}s:10:"page_views";i:16;s:10:"visit_time";i:523;s:4:"name";s:6:"СНГ";s:11:"region_type";s:6:"region";s:2:"id";s:3:"166";}}s:10:"page_views";i:26;s:10:"visit_time";i:160;s:4:"name";s:14:"Евразия";s:11:"region_type";s:9:"continent";s:2:"id";s:5:"10001";}}
     
  17. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    PHP:
    1. $arr = unserialize('a:1:{i:0;a:9:{s:6:"denial";d:0.10000000000000001;s:6:"visits";i:10;s:5:"depth";d:2.6000000000000001;s:4:"chld";a:2:{i:0;a:9:{s:6:"denial";d:0.1111;s:6:"visits";i:9;s:5:"depth";d:1.1111;s:4:"chld";a:3:{i:0;a:9:{s:6:"denial";d:0;s:6:"visits";i:4;s:5:"depth";d:1.25;s:4:"chld";a:1:{i:0;a:9:{s:6:"denial";d:0;s:6:"visits";i:4;s:5:"depth";d:1.25;s:4:"chld";a:2:{i:0;a:8:{s:6:"denial";d:0;s:6:"visits";i:3;s:5:"depth";d:1.3332999999999999;s:10:"page_views";i:4;s:10:"visit_time";i:269;s:4:"name";s:12:"Москва";s:11:"region_type";s:4:"city";s:2:"id";s:3:"213";}i:1;a:9:{s:6:"denial";d:0;s:6:"visits";i:1;s:5:"depth";d:1;s:4:"chld";a:1:{i:0;a:8:{s:6:"denial";d:0;s:6:"visits";i:1;s:5:"depth";d:1;s:10:"page_views";i:1;s:10:"visit_time";i:53;s:4:"name";s:22:"Красногорск";s:11:"region_type";s:4:"city";s:2:"id";s:5:"10735";}}s:10:"page_views";i:1;s:10:"visit_time";i:53;s:4:"name";s:37:"Красногорский район";s:11:"region_type";s:9:"district2";s:2:"id";s:5:"98590";}}s:10:"page_views";i:5;s:10:"visit_time";i:215;s:4:"name";s:51:"Москва и Московская область";s:11:"region_type";s:11:"fed_subject";s:2:"id";s:1:"1";}}s:10:"page_views";i:5;s:10:"visit_time";i:215;s:4:"name";s:56:"Центральный федеральный округ";s:11:"region_type";s:5:"state";s:2:"id";s:1:"3";}i:1;a:9:{s:6:"denial";d:0.33329999999999999;s:6:"visits";i:3;s:5:"depth";d:1;s:4:"chld";a:1:{i:0;a:9:{s:6:"denial";d:0.33329999999999999;s:6:"visits";i:3;s:5:"depth";d:1;s:4:"chld";a:1:{i:0;a:9:{s:6:"denial";d:0.33329999999999999;s:6:"visits";i:3;s:5:"depth";d:1;s:4:"chld";a:1:{i:0;a:8:{s:6:"denial";d:0.33329999999999999;s:6:"visits";i:3;s:5:"depth";d:1;s:10:"page_views";i:3;s:10:"visit_time";i:10;s:4:"name";s:10:"Томск";s:11:"region_type";s:4:"city";s:2:"id";s:2:"67";}}s:10:"page_views";i:3;s:10:"visit_time";i:10;s:4:"name";s:40:"Городской округ Томск";s:11:"region_type";s:9:"district2";s:2:"id";s:6:"121097";}}s:10:"page_views";i:3;s:10:"visit_time";i:10;s:4:"name";s:29:"Томская область";s:11:"region_type";s:11:"fed_subject";s:2:"id";s:5:"11353";}}s:10:"page_views";i:3;s:10:"visit_time";i:10;s:4:"name";s:52:"Сибирский федеральный округ";s:11:"region_type";s:5:"state";s:2:"id";s:2:"59";}i:2;a:9:{s:6:"denial";d:0;s:6:"visits";i:2;s:5:"depth";d:1;s:4:"chld";a:1:{i:0;a:9:{s:6:"denial";d:0;s:6:"visits";i:1;s:5:"depth";d:1;s:4:"chld";a:1:{i:0;a:8:{s:6:"denial";d:0;s:6:"visits";i:1;s:5:"depth";d:1;s:10:"page_views";i:1;s:10:"visit_time";i:138;s:4:"name";s:29:"Санкт-Петербург";s:11:"region_type";s:4:"city";s:2:"id";s:1:"2";}}s:10:"page_views";i:1;s:10:"visit_time";i:138;s:4:"name";s:74:"Санкт-Петербург и Ленинградская область";s:11:"region_type";s:11:"fed_subject";s:2:"id";s:5:"10174";}}s:10:"page_views";i:2;s:10:"visit_time";i:94;s:4:"name";s:63:"Северо-Западный федеральный округ";s:11:"region_type";s:5:"state";s:2:"id";s:2:"17";}}s:10:"page_views";i:10;s:10:"visit_time";i:120;s:4:"name";s:12:"Россия";s:11:"region_type";s:7:"country";s:2:"id";s:3:"225";}i:1;a:9:{s:6:"denial";d:0;s:6:"visits";i:1;s:5:"depth";d:16;s:4:"chld";a:1:{i:0;a:8:{s:6:"denial";d:0;s:6:"visits";i:1;s:5:"depth";d:16;s:10:"page_views";i:16;s:10:"visit_time";i:523;s:4:"name";s:14:"Украина";s:11:"region_type";s:7:"country";s:2:"id";s:3:"187";}}s:10:"page_views";i:16;s:10:"visit_time";i:523;s:4:"name";s:6:"СНГ";s:11:"region_type";s:6:"region";s:2:"id";s:3:"166";}}s:10:"page_views";i:26;s:10:"visit_time";i:160;s:4:"name";s:14:"Евразия";s:11:"region_type";s:9:"continent";s:2:"id";s:5:"10001";}}
    2. ');
    3. function prod($carry, $item) {
    4.     if (is_array($item)) {
    5.         if ($item['region_type'] == 'city') {
    6.             foreach ($item as $key => $val) {
    7.                 if (!is_array($val)) {
    8.                     echo $key . ":" . $val."<br>";
    9.                 }
    10.             }
    11.             echo "<br>";
    12.         }
    13.         array_reduce($item, 'prod');
    14.     } else {
    15.        
    16.     }
    17. }
    18. array_reduce($arr, 'prod');
    В общем подредактировал чуть код, вот, вроде выводит именно те данные которые требуются.
     
    denis01 нравится это.
  18. ghostcom

    ghostcom Активный пользователь

    С нами с:
    17 фев 2016
    Сообщения:
    92
    Симпатии:
    2
    @mahmuzar
    Вообщем дело обстоит так. Сериализованый массив выводит пустоту как не крутил, а вот при обычном массиве показывает те части где есть значение city. То есть частично все получилось, но выводит все ключи и значения вложенного массива где есть region_type = city.
    Два часа бьюсь не могу выводить из этого массива только $item['name'] и $item['visits']
     
  19. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    убери форыч и все. Как в примере выше, который ты выложил.
    --- Добавлено ---
    Все работам как надо, тебе я оставил этот момент , где надо было убрать форыч и сделать вывод таким какой тебе требуется. Это просто, должно у тебя получиться.
    --- Добавлено ---
    Сериализованный массив я просил для себя. Ты используй свой обычный массив.
     
  20. ghostcom

    ghostcom Активный пользователь

    С нами с:
    17 фев 2016
    Сообщения:
    92
    Симпатии:
    2
    @mahmuzar
    СУПЕР все получилось!!!
    Код (Text):
    1.  
    2. $data = $todayGeo["data"];
    3.  
    4. function prod($carry, $item) {
    5.     if (is_array($item)) {
    6.         if ($item['region_type'] == 'city') {
    7.                 echo $item['name'] . " - " . $item['visits'] . "<br />";
    8.             echo "<br>";
    9.         }
    10.         array_reduce($item, 'prod');
    11.     } else {
    12.      
    13.     }
    14. }
    15. array_reduce($data, 'prod');
     
  21. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @ghostcom, я же говорил, все просто. Тот вывод который я выложил, это была демонстрация.))
     
    ghostcom нравится это.
  22. ghostcom

    ghostcom Активный пользователь

    С нами с:
    17 фев 2016
    Сообщения:
    92
    Симпатии:
    2
    Спасибо @mahmuzar добрый человек. От начала до конца со мной провозился :):):):)
    Темку можно закрыть!:cool: