从多维数组中获取数据

时间:2014-05-12 08:25:26

标签: php arrays multidimensional-array

我有一个php数组

Array
(
    [results] => Array
        (
            [0] => Array
                (
                    [birthday] => 11-Apr-2014
                    [category] => Array
                        (
                            [0] => 204
                            [1] => 300
                            [2] => 304
                        )

                    [city] => Dhaka
                    [country] => Bangladesh
                    [email] => javaorjava@gmail.com
                    [fullName] => biplob
                    [gender] => Male
                    [inspirational] => Run to dream
                    [phone] => aapbd1
                    [photo] => Array
                        (
                            [__type] => File
                            [name] => 8bef9bc3-ee64-45df-9698-0466e255c1bd-profilePhoto.jpg
                            [url] => http://files.com/c2dcf728-e2a3-4b2d-a8c8-6ec9b3c6502a/8bef9bc3-ee64-45df-9698-0466e255c1bd-profilePhoto.jpg
                        )

                    [username] => aapbd
                    [website] => http://ss.com
                    [createdAt] => 2014-04-10T19:01:16.396Z
                    [updatedAt] => 2014-04-28T07:36:18.459Z
                    [objectId] => IQSCdXE2hI
                )

            [1] => Array
                (
                    [birthday] => 09-Apr-1982
                    [category] => Array
                        (
                            [0] => 204
                            [1] => 307
                            [2] => 311
                            [3] => 313
                            [4] => 102
                            [5] => 103
                            [6] => 105
                            [7] => 107
                        )

                    [city] => Madrid
                    [country] => Spain
                    [coverPhoto] => Array
                        (
                            [__type] => File
                            [name] => aa53cf65-47af-464d-aa49-88202f91388f-coverPhoto.jpg
                            [url] => http://files.com/c2dcf728-e2a3-4b2d-a8c8-6ec9b3c6502a/aa53cf65-47af-464d-aa49-88202f91388f-coverPhoto.jpg
                        )

                    [description] => a lazy man
                    [email] => skio@yahoo.com
                    [fullName] => Sjun
                    [gender] => Male
                    [inspirational] => Honesty is the best policy
                    [phone] => 135469
                    [photo] => Array
                        (
                            [__type] => File
                            [name] => a1aec283-f3c7-484c-a8b2-a0b09c5f3023-profilePhoto.jpg
                            [url] => http://files.com/c2dcf728-e2a3-4b2d-a8c8-6ec9b3c6502a/a1aec283-f3c7-484c-a8b2-a0b09c5f3023-profilePhoto.jpg
                        )

                    [username] => asa
                    [website] => 
                    [createdAt] => 2014-04-09T07:58:19.043Z
                    [updatedAt] => 2014-05-07T11:13:40.671Z
                    [objectId] => iVb6olefaT
                )


        )

)

我正在尝试在PHP中练习/学习foreach循环。我理解基本的foreach。但我与多维度斗争。

我希望得到我的每个阵列生日,照片名称,照片网址,类别。

但是我无法使用foreach循环正确检索它们

3 个答案:

答案 0 :(得分:5)

使用简单的foreach()迭代MD数组..

foreach($yourarray['results'] as $k=>$arr)
{
 echo $arr['birthday'];
 echo $arr['photo']['name'];
 echo $arr['photo']['url'];
}

答案 1 :(得分:3)

我们说你的数组是$ data,

foreach ($data['results'] as $key => $value)
        echo $value['birthday'];     
        echo $value['photo']['name'];
        echo $value['photo']['url'];
}

使用$key作为索引值。

答案 2 :(得分:1)

无论类别数量多少,您都可以访问嵌套数组:

// Loop over all elements of main array element
foreach($array['results'] as $arr_key => $arr_value) {

    // Loop over children
    foreach($arr_value as $key => $value) {

        // Element is array (like 'category' or 'photo')
        if(is_array($value)) {
            foreach($value as $sub_key => $sub_value) {
                echo $key."[".$sub_key."] = ".$sub_value;
            }

        // Element is no array
        } else {
            echo $key." = ".$value;
        }
    }
}

Example