2011-11-16 48 views
1

我有一个json解码数组像$ json = json_decode($ curl_result);如何使用foreach循环获取这个数组,我想尽可能地减少数组循环。你能写出正确的代码,我可以访问这些值。获取JSON解码数组使用PHP foreach循环

阵列看上去就像下面

Array 
    (
    [SITEResponse] => Array 
    (
     [@version] => 1.0 
     [SoftwareProducts] => Array 
     (
      [@numFound] => 408 
      [@numReturned] => 10 
      [@start] => 0 
      [SoftwareProduct] => Array 
      (
       [0] => Array 
        (
        [Summary] => Array 
        (
         [$] => summery of software. 
        ) 
        [Requirements] => Array 
        (
        ) 

        [ContentIds] => Array 
        (
        ) 

        [CleverBridgeUrl] => Array 
        (
        ) 

        [BuyNowUrl] => Array 
        (
         [$] => http://www.abc.com 
         [@type] => dl_buy_pub 
        ) 

        [BetaRelease] => Array 
        (
         [$] => false 
        ) 

        [LinkURL] => Array 
        (
        [$] => http://www.abc.com 
        ) 
       )  
      ) 
     ) 
    ) 
) 

现在我想这个数组的每一个值,但如何???请帮助 谢谢。

+0

使用foreach循环.. – insomiac

+0

但不工作 –

+0

创建一个功能,让你在一个动态的方式输出。 例如:的foreach($ JSON作为$密钥=> $ val)的{ 如果(is_array($ VAL)){ CALL,其扫描数组的函数.. } } 否则可以通过指定做静态数组名称: $ output ['SITEResponse']将数组 $ output ['SITEResponse'] ['version']将为1.0 类似地,您可以执行此其他值。 – insomiac

回答

1
$version = $json['SITEResponse']['@version']; 
$numFound = $json['SITEResponse']['SoftwareProducts']['@numFound']; 
... 
... 

foreach($json['SITEResponse']['SoftwareProducts']['SoftwareProduct'] as $key=>$product){ 
$Summary= $product['Summary']['$']; 
$BuyNowUrl = $product['BuyNowUrl']['$']; 
... 
... 
... 
}