2017-01-13 6 views
0

У меня есть следующий массив, так как я преобразовал строку я получил обратно от SOAP вызова массива:получить конкретное значение ключа из многомерного массива

Array 
(
    [soapenvBody] => Array 
     (
      [queryRequestsResponse] => Array 
       (
        [result] => Array 
         (
          [0] => Array 
           (
            [BCRcustomId] => REQ16569 
            [BCRexternalId] => Array 
             (
             ) 

            [BCRrecordId] => a035700001CM60kAAD 
            [BCRrequestId] => a1J5700000857EYEAY 
           ) 

          [1] => Array 
           (
            [BCRcustomId] => SRQ100784 
            [BCRexternalId] => Array 
             (
             ) 

            [BCRrecordId] => a033E000001PxfAQAS 
            [BCRrequestId] => a1J3E0000000GSaUAM 
           ) 

         ) 

       ) 

     ) 

) 

Я пытаюсь извлечь BCRrecordId, так как мне нужно этот пункт, чтобы сделать другой вызов SOAP. Я пробовал следующее:

function getID($array) { 
    return $array['BCRcustomId']; 
} 

// 

$arr = array_map('getID', $array); 
print_r($arr); 

Теперь я получаю сообщение об ошибке, сказав, что он не находит его.

Undefined индекс: BCRcustomId в index.php в строке 97
[soapenvBody] =>) Массив (

Мое предположение, что это doenst идти ниже, чем на 1 уровень в массиве Теперь. Я не являюсь семейным лицом с такими типами массивов, как бы я это разрешил? Несколько раз для каждой петли? Или есть другой способ получить эти предметы?

ответ

3

Если $array - это весь ответ, вам необходимо передать только result часть это:

$arr = array_map('getID', $array['soapenvBody']['queryRequestsResponse']['result']); 
+0

Удивительно, именно то, что мне нужно. Я не знал, что смогу разобраться в карте массива. Благодаря! Примите это как awnser, когда я смогу через 3 минуты – Dorvalla

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