2016-08-09 1 views
2

아래와 같은 연관 배열을 가지고 있습니다. 실제 배열은 훨씬 깁니다. 이것은 단지 그것의 일부입니다. 에만 "[equipmentType] => WARRANTY"이있는 요소에만 액세스하고 싶습니다. 이 경우 요소 번호는 [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