2016-08-09 5 views
2

У меня есть ассоциативный массив, как показано ниже, фактический массив намного больше. Это лишь часть его. Я хочу получить только элементы, которые имеют «[equipmentType] => ГАРАНТИЯ» в нем. В этом случае номер элемента [39], но номер элемента изменяется, это не всегда [39].Доступ к ассоциативным массивам PHP

Я знаю, что могу получить доступ к $ arrayName ["equipment"] ["39"] ["name"], но как мне получить доступ к нему, когда это не [39]?

В этом конкретном примере есть 44 элемента, которые вы можете видеть с помощью значения [equipmentCount].

Прошу прощения, если я не объясню это хорошо.

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

Используйте цикл Еогеаспа для перебрать конкретный подмассив, а затем получить доступ к индексу имен в каждой итерации. – Rizier123

+0

Спасибо за ваше предложение, но как это сделать, когда ключ [39] может быть другим? Связанные массивы дают мне головную боль ;-) – Tim

+2

Просто сделайте 'foreach ($ variableName as $ key => $ name) {echo" $ key => $ name
";}', и вы увидите, что вы перебираете. Тогда я уверен, что вы это получите. – Rizier123

ответ

1

Если я понимаю правильно, может быть, что вы хотите:

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

Спасибо! Я смотрел на array_filter, но не был уверен, как его использовать. Теперь я могу просто прокрутить вспомогательный массив по мере необходимости. – Tim

Смежные вопросы