0

I have an array, I loop through it:

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

But inside the loop, other than doing something for $input['gallery'], I also want to do something for $input['galleryData'].

How can I access each part of the gallery Data array in the same loop?

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

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

Dump of input:

{
    ["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"
                }
        }
}
user247702
  • 23,641
  • 15
  • 110
  • 157
panthro
  • 22,779
  • 66
  • 183
  • 324

1 Answers1

-1

Loop on your main array and add special action according to the array key :

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

For a more robust code you can also check if $value is an array before the foreach just to be sure and avoid error

grunk
  • 14,718
  • 15
  • 67
  • 108