2016-08-09 14 views
2

私は以下のような連想配列を持っていますが、実際の配列ははるかに大きくなります。これはその一部です。 "[equipmentType] =>保証"の要素にのみアクセスします。この場合、要素番号は[39]ですが、要素番号は変更されますが、必ずしもそうではありません[39]。PHP連想配列アクセス

私は$ arrayName ["equipment" ["39"] ["name"]にアクセスできますが、それが[39]ではないときにどうすればアクセスできますか?

この特定の例では、[equipmentCount]値で確認できるように44個の要素があります。

私はこれをうまく説明していない場合はお詫び申し上げます。

Array 
(
    [equipment] => Array 
    (

     [2] => Array 
      (
       [id] => 20073207920 
       [name] => Mobile Connectivity 
       [equipmentType] => OTHER 
       [availability] => STANDARD 
       [attributes] => Array 
        (
         [0] => Array 
          (
           [name] => Bluetooth 
           [value] => Bluetooth 
          ) 

        ) 

      ) 

     [39] => Array 
      (
       [id] => 200732343 
       [name] => Rust, 5 Years, /U Miles 
       [equipmentType] => WARRANTY 
       [availability] => STANDARD 
       [attributes] => Array 
        (
         [0] => Array 
          (
           [name] => Warranty End Date 
           [value] => 09-Sep-2099 
          ) 
        ) 

      ) 

    ) 

    [equipmentCount] => 44 
) 

ありがとう!

+2

は、その特定の部分配列をループにforeachループを使用して、各反復で名前のインデックスにアクセス。 – Rizier123

+0

提案していただきありがとうございますが、キー[39]が異なる可能性がある場合、どうすればよいですか?アソシエート配列は私に頭痛を与えます;-) – Tim

+2

'foreach($ variable = as $ key => $ name){echo" $ key => $ name
";}'を実行するだけで、繰り返し処理することがわかります。それから私はあなたがそれを得ると確信しています。 – Rizier123

答えて

1

私は右理解していれば、多分それはあなたが何をしたいです:

array_filter($array['equipment'], function($equip){ 
     return array_search('WARRANTY', $equip); 
}) 
+0

ありがとう!私はarray_filterを見ていましたが、それをどのように使用するかについてはあまりよく分かりませんでした。これで、必要に応じてサブ配列をループすることができます。 – Tim