PHP数组-如何提取其中的一部分

PHP数组-如何提取其中的一部分,php,arrays,nusoap,Php,Arrays,Nusoap,我想从一个大数组中获取SOAP服务接收到的一些值 printr($result) 结果: Array ( [GetProductResult] => Array ( [schema] => Array ( [element] => Array ( [com

我想从一个大数组中获取SOAP服务接收到的一些值

printr($result)
结果:

Array
(
    [GetProductResult] => Array
        (
            [schema] => Array
                (
                    [element] => Array
                        (
                            [complexType] => Array
                                (
                                    [choice] => Array
                                        (
                                            [element] => Array
                                                (
                                                    [complexType] => Array
                                                        (
                                                            [sequence] => Array
                                                                (
                                                                    [element] => Array
                                                                        (
                                                                            [0] => Array
                                                                                (
                                                                                    [!name] => codigo
                                                                                    [!minOccurs] => 0
                                                                                )

                                                                            [1] => Array
                                                                                (
                                                                                    [!name] => nome
                                                                                    [!minOccurs] => 0
                                                                                )

                                                                            [2] => Array
                                                                                (
                                                                                    [!name] => imagem
                                                                                    [!minOccurs] => 0
                                                                                )

                                                                            [3] => Array
                                                                                (
                                                                                    [!name] => stock
                                                                                    [!minOccurs] => 0
                                                                                )

                                                                        )

                                                                )

                                                        )

                                                    [!name] => produto
                                                )

                                            [!minOccurs] => 0
                                            [!maxOccurs] => unbounded
                                        )

                                )

                            [!name] => produtos
                            [!msdata:IsDataSet] => true
                            [!msdata:UseCurrentLocale] => true
                        )

                    [!id] => produtos
                )

            [diffgram] => Array
                (
                    [produtos] => Array
                        (
                            [produto] => Array
                                (
                                    [codigo] => 37527
                                    [nome] => Macally - Caixa 2.5" USB2 para discos SATA
                                    [imagem] => http://www.macally-europe.com/img/products/ProductImage1987.jpg
                                    [stock] => 1
                                    [!diffgr:id] => produto1
                                    [!msdata:rowOrder] => 0
                                )

                        )

                )

        )

)
我只想从数组的最后一部分获取值:

diffgram -> produtos -> produto -> [codigo],[nome],[imagem],[stock]

这应该可以做到:

$result['GetProductResult']['diffgram']['produtos']['produto']

codigo、nom、imagem和stock键都在该数组中。

请先尝试展平数组(源代码):


然后使用$arr['diffgram']、$arr['produto']等访问它。

神圣阵列,蝙蝠侠!我感觉自己像是在侧身跌倒。它总是被称为diffgram吗?问题出在哪里?只需像访问任何其他PHP数组一样访问这些属性,不同之处在于此数组嵌套得更深。
$result['GetProductResult']['diffgram']['produtos']['produto']
function flatten(array $array) {
    $return = array();
    array_walk_recursive($array, function($a) use (&$return) { $return[] = $a; });
    return $return;
}

$arr = flatten($arr);