遍历两个数组


Loop through two arrays?

我有一个数组,我遍历它:

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

但是在循环中,除了为$input['gallery']做点什么,我还想为$input做点什么。

如何在同一循环中访问库数据数组的每个部分?

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"
                }
        }
}

循环主数组并根据数组键添加特殊操作:

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

对于更健壮的代码,您还可以在 foreach 之前检查 $value 是否是一个数组,以确保并避免错误