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