2013-09-30 3 views
0

У меня есть массив, я петля через него:Цикл через два массива?

foreach($input['gallery'] as $galleryImg) { 
} 

Но внутри цикла, кроме делать что-то за $ вход [ «галерея»], я тоже хочу сделать что-то за $ вход [ «galleryData» ].

Как я могу получить доступ к каждой части галереи Массив данных в том же цикле?

foreach($input['gallery'] as $galleryImg) { 

    //do something for $galleryImg 
    //do something for $input['galleryData'][$i?] 
} 

самосвала ввода:

{ 
    ["title"]=> string(0) "" 
    ["date"]=> string(10) "30-09-2013" 
    ["content"]=> string(0) "" 
    ["galleryData"]=> string(149) 
     "[ 
      { 
       "comment":"$(this).data('comment')" 
       ,"youTube":"$(this).data('youtube')" 
      }, 
      { 
       "comment":"$(this).data('comment')" 
       ,"youTube":"$(this).data('youtube')" 
      } 
     ]" 
    ["cover"]=> object(Symfony\Component\HttpFoundation\File\UploadedFile)#9 (7) 
     { 
      ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> bool(false) 
      ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(14) "smallbunny.jpg" 
      ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(10) "image/jpeg" 
      ["size":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(2383) 
      ["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(0) 
      ["pathName":"SplFileInfo":private]=> string(14) "/tmp/phpBXVl5Q" 
      ["fileName":"SplFileInfo":private]=> string(9) "phpBXVl5Q" 
     } 
    ["gallery"]=> array(2) 
     { 
      [0]=> object(Symfony\Component\HttpFoundation\File\UploadedFile)#10 (7) 
       { 
        ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> bool(false) 
        ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(9) "6empj.jpg" 
        ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(10) "image/jpeg" 
        ["size":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(116985) 
        ["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(0) 
        ["pathName":"SplFileInfo":private]=> string(14) "/tmp/phpsl4sNd" 
        ["fileName":"SplFileInfo":private]=> string(9) "phpsl4sNd" 
       } 
      [1]=> object(Symfony\Component\HttpFoundation\File\UploadedFile)#11 (7) 
       { 
        ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> bool(false) 
        ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(14) "smallbunny.jpg" 
        ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(10) "image/jpeg" 
        ["size":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(2383) 
        ["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(0) 
        ["pathName":"SplFileInfo":private]=> string(14) "/tmp/phpA1u3vA" 
        ["fileName":"SplFileInfo":private]=> string(9) "phpA1u3vA" 
       } 
     } 
} 
+0

Не могли бы вы показать «var_dump ($ in put) '... Наверное, это более полезно, чем совать в тумане. – djot

+0

Любая причина '[" galleryData "]' является строкой? – Stijn

+0

Выглядит как массив, сериализованный в json – grunk

ответ

-1

Петля на основной массив и добавить специальное действие согласно ключу массива:

foreach($input as $key => $value) { 
    if($key == 'gallery') { 
     foreach($value as $galleryValue) { 
      //Do something with $galleryValue; 
     } 
    } 
    else if ($key == 'galleryData') { 
     $galleryData = json_decode($value); 
    } 
} 

Для более надежного кода вы также можете проверить, если $value - массив перед foreach, чтобы быть уверенным и избежать ошибки

+0

Объясните свои пустые голоса ... – grunk

+0

Я сделал это, когда OP дал нам дамп :( – grunk

+0

У меня +1 :) Я не уверен, что кто-то должен удалить ответ и опубликовать новый, или отредактировать существующий, в таких случаях. – Stijn

Смежные вопросы