2013-04-19 2 views
2
Array 
(
    [2] => Array 
     (
      [12] => Array 
       (
        [0] => Array 
         (
          [id] => 24339 
          [active] => 1 
          [lang] => en 
          [link] => http://vk.com/video_ext.php?oid=203859683&id=165118953&hash=545584bd3253fab9&hd=1 
         ) 

        [1] => Array 
         (
          [id] => 24483 
          [active] => 1 
          [lang] => ru 
          [link] => http://vk.com/video_ext.php?oid=203859108&id=164809310&hash=5544f9e52b6ebc10&hd=1 
         ) 

       ) 

      [11] => Array 
       (
        [0] => Array 
         (
          [id] => 24016 
          [active] => 1 
          [lang] => en 
          [link] => http://vk.com/video_ext.php?oid=203859683&id=165118860&hash=088323c81fb1f360&hd=1 
         ) 

        [1] => Array 
         (
          [id] => 24115 
          [active] => 1 
          [lang] => ru 
          [link] => http://vk.com/video_ext.php?oid=203859108&id=164809379&hash=dd49270049f5a632&hd=1 
         ) 

       ) 

      [10] => Array 
       (
        [0] => Array 
         (
          [id] => 23463 
          [active] => 1 
          [lang] => en 
          [link] => http://vk.com/video_ext.php?oid=203859683&id=165118763&hash=f328401f5bd7f2e4&hd=1 
         ) 

        [1] => Array 
         (
          [id] => 23656 
          [active] => 1 
          [lang] => ru 
          [link] => http://vk.com/video_ext.php?oid=203859108&id=164809462&hash=7a61a9ac444e2b95&hd=1 
         ) 

       ) 

      [9] => Array 
       (
        [0] => Array 
         (
          [id] => 21815 
          [active] => 1 
          [lang] => en 
          [link] => http://vk.com/video_ext.php?oid=203859683&id=165118684&hash=3bbddfcc12426510&hd=1 
         ) 

        [1] => Array 
         (
          [id] => 22406 
          [active] => 1 
          [lang] => ru 
          [link] => http://vk.com/video_ext.php?oid=203859108&id=164809548&hash=cd0e7f43171569a6&hd=1 
         ) 

       ) 

      [8] => Array 
       (
        [0] => Array 
         (
          [id] => 20443 
          [active] => 1 
          [lang] => en 
          [link] => http://vk.com/video_ext.php?oid=203859683&id=165118608&hash=26c0f730bc1dd6c3&hd=1 
         ) 

        [1] => Array 
         (
          [id] => 20921 
          [active] => 1 
          [lang] => ru 
          [link] => http://vk.com/video_ext.php?oid=203859108&id=164809649&hash=47c524f47946fb96&hd=1 
         ) 

       ) 

      [7] => Array 
       (
        [0] => Array 
         (
          [id] => 19812 
          [active] => 1 
          [lang] => en 
          [link] => http://vk.com/video_ext.php?oid=203859683&id=165118510&hash=1243ca95114cbdf2&hd=1 
         ) 

        [1] => Array 
         (
          [id] => 20057 
          [active] => 1 
          [lang] => ru 
          [link] => http://vk.com/video_ext.php?oid=203859108&id=164809741&hash=266c635751d2f9d5&hd=1 
         ) 

       ) 

      [6] => Array 
       (
        [0] => Array 
         (
          [id] => 19262 
          [active] => 1 
          [lang] => en 
          [link] => http://vk.com/video_ext.php?oid=203859683&id=165118374&hash=e947746533f9d895&hd=1 
         ) 

        [1] => Array 
         (
          [id] => 19392 
          [active] => 1 
          [lang] => ru 
          [link] => http://vk.com/video_ext.php?oid=203859108&id=164809836&hash=e58901e3e2f32993&hd=1 
         ) 

       ) 

      [5] => Array 
       (
        [0] => Array 
         (
          [id] => 18217 
          [active] => 1 
          [lang] => en 
          [link] => http://vk.com/video_ext.php?oid=203859683&id=165118222&hash=3a236df89bcfaac5&hd=1 
         ) 

        [1] => Array 
         (
          [id] => 18417 
          [active] => 1 
          [lang] => ru 
          [link] => http://vk.com/video_ext.php?oid=203859108&id=164809927&hash=d8a72be4d4eb7d86&hd=1 
         ) 

       ) 

      [4] => Array 
       (
        [0] => Array 
         (
          [id] => 17231 
          [active] => 1 
          [lang] => en 
          [link] => http://vk.com/video_ext.php?oid=203859683&id=165118092&hash=13e854824bde17ab&hd=1 
         ) 

        [1] => Array 
         (
          [id] => 17603 
          [active] => 1 
          [lang] => ru 
          [link] => http://vk.com/video_ext.php?oid=203859108&id=164810038&hash=9d7b6a4336dd2b98&hd=1 
         ) 

       ) 

      [3] => Array 
       (
        [0] => Array 
         (
          [id] => 15838 
          [active] => 1 
          [lang] => en 
          [link] => http://vk.com/video_ext.php?oid=203859683&id=165117998&hash=031a9c6d70058e4f&hd=1 
         ) 

        [1] => Array 
         (
          [id] => 16465 
          [active] => 1 
          [lang] => ru 
          [link] => http://vk.com/video_ext.php?oid=203859108&id=164810119&hash=06985923604c61ca&hd=1 
         ) 

       ) 

      [2] => Array 
       (
        [0] => Array 
         (
          [id] => 15070 
          [active] => 1 
          [lang] => en 
          [link] => http://vk.com/video_ext.php?oid=203859683&id=165117903&hash=b1a21a9021b74aa2&hd=1 
         ) 

        [1] => Array 
         (
          [id] => 15284 
          [active] => 1 
          [lang] => ru 
          [link] => http://vk.com/video_ext.php?oid=203859108&id=164810199&hash=3b818c6ef7c7488b&hd=1 
         ) 

       ) 

      [1] => Array 
       (
        [0] => Array 
         (
          [id] => 13663 
          [active] => 1 
          [lang] => en 
          [link] => http://vk.com/video_ext.php?oid=203859683&id=165117810&hash=62f01fa6c53a195f&hd=1 
         ) 

        [1] => Array 
         (
          [id] => 14000 
          [active] => 1 
          [lang] => ru 
          [link] => http://vk.com/video_ext.php?oid=203859108&id=164810267&hash=60074b4f93d62429&hd=1 
         ) 

       )1 

     ) 

) 

У меня есть следующее, что я нарезал из гораздо большего массива. Теперь я хочу зациклиться на этом массиве и фильтровать некоторые значения. Я использовал функцию sliced_array с истинным вариантом сохранения номера массива [2].Петля над индексированной матрицей

Теперь этот массив имеет несколько подвариантов, и мне нужны некоторые значения и некоторая фильтрация. В конечном итоге я хочу создать таблицу, в которой перечислены номера массивов (от 1 до 12). И за ней стоит ссылка. (так что таблица с двумя столбцами). Мне не нужен второй массив из номера эпизода. это всегда массив [1] из эпизода. Это «русская» часть, и мне это не нужно в моих конечных результатах.

Как я могу обойти это и получить простую таблицу html в качестве вывода? Я пытался с помощью метода foreach(), но пока все, что я вернусь, это «Массив».

Редактировать Ответ был действительно выполненным для нескольких foreach.

<?php 
    $json = file_get_contents("http://trendico.ru/api/moviebox/get_tv_data?id=1&season=7"); 
    $array = json_decode($json, TRUE); 


//Create an index array 
$indexarray = (array_values($array)); 

//Create an array with only the episodes 
$episodes = array_slice($indexarray, 2, 1); 



foreach($array as $arrayl1) { 
    foreach($arrayl1 as $arrayl2) { 
     foreach($arrayl2 as $arrayl3) { 
      foreach($arrayl3 as $key => $val) { 
       echo "$key=>$val"."<br>"; 
      } 
     } 
    } 
} 

?> 
+5

Продолжайте движение до тех пор, пока не достигнете нужного значения –

+0

Вам понадобится вложенный 'для каждого' –

+0

. Как выглядит ваш код сейчас? (который разрезает массив) – bestprogrammerintheworld

ответ

3

Использование рекурсивной функции и is_array.

function doSomething(&$complex_array){ 
foreach ($complex_array as $n => $v) 
{ 
    if (is_array($v)) 
     doSomething($v); 
    else 
     do whatever you want to do with a single node 
}} 
+0

Этот ответ должен быть в комментарии! :) –

+0

@VinothBabu, которому требуется 50 rep, которого у него (пока) нет. –

+0

Вы все очень помогли мне, направив меня в правильном направлении. Теперь мне нужно только собрать все это :) – Senaxx

1
<?php 
foreach($array as $smaller){ 
    foreach($smaller as $link){ 
    echo $link[0]['id'] . " > ". $link[0]['link'] 
    } 
} 
2

вы можете цикл внутри всех ваших массива до тех пор пока вы дойдете данные, которые необходимы, так как данные в 4-ом уровне, так что давайте цикл 4 раза

foreach($array as $arrayl1) { 
    foreach($arrayl1 as $arrayl2) { 
     foreach($arrayl2 as $arrayl3) { 
      foreach($arrayl3 as $key => $val) { 
       echo "$key=>$val"."<br>"; 
      } 
     } 
    } 
} 

это Выведет

id=>24339 
active=>1 
lang=>en 
link=>http://vk.com/video_ext.php?oid=203859683&id=165118953&hash=545584bd3253fab9&hd=1 
id=>24483 
active=>1 
lang=>ru // and so on 
+0

Спасибо :) Я не знал, что это будет просто ... любая идея, как я могу отфильтровать массив [0] из эпизод с языком ru? – Senaxx

+0

Что вы имеете в виду? – Fabio

+0

@ Michel Beld Взгляните на мой ответ, может быть, это поможет немного. – botenvouwer

2

Вы вероятно, недостаточно глубоко, это должно работать:

foreach($array[2] as $link){ 
     if($choice == 'eng'){ 
      // the English 
      echo $link[0]['id'] . " - ". $link[0]['link']; 
     } 
     elseif($choice == 'ru'){ 
      // the Russian 
      echo $link[1]['id'] . " - ". $link[1]['link']; 
     } 
} 

$ array - это переменная, которую вы используете для хранения многомерного массива. Первый элемент - это массив с ключом 2. Я не знаю, почему !? Но все еще петля через массив внутри массива.

+0

У него есть номер два, потому что это фрагмент из большего массива. И я использовал истинную опцию из функции slice_array, чтобы сохранить этот номер массива. Но без истинного варианта он начнет с нуля. – Senaxx

+0

Oke, который звучит логично. Но все же, когда есть только один верхний массив, почему цикл над ним просто указывает на него напрямую. – botenvouwer

+0

Я могу просто удалить истинную часть и получить массив, начинающийся с нуля. С помощью Фабио я действительно получил выход. И до сих пор я обновил исходный вопрос. Теперь мне нужно включить ваше предложение для фильтрующей части. – Senaxx