Как копать многомерный массив? - PullRequest
0 голосов
/ 17 февраля 2012
Array (
  [0] => Array (
    [PACKAGE] => Array (
      [0] => Array (
        [ATTRIBUTES] => Array (
          [ID] => 0
        )
        [ZIPORIGINATION] => Array (
          [0] => Array (
            [VALUE] => 32751
          )
        )
        [ZIPDESTINATION] => Array (
          [0] => Array (
            [VALUE] => 55967
          )
        )
        [POUNDS] => Array (
          [0] => Array (
            [VALUE] => 0
          )
        )
        [OUNCES] => Array (
          [0] => Array (
            [VALUE] => 9
          )
        )
        [CONTAINER] => Array (
          [0] => Array (
            [VALUE] => Flat Rate Box
          )
        )
        [SIZE] => Array (
          [0] => Array (
            [VALUE] => REGULAR
          )
        )
        [ZONE] => Array (
          [0] => Array (
            [VALUE] => 6
          )
        )
        [POSTAGE] => Array (
          [0] => Array (
            [MAILSERVICE] => Array (
              [0] => Array (
                [VALUE] => Priority Mail<sup>&reg;</sup> Medium Flat Rate Box
              )
            )
            [RATE] => Array (
              [0] => Array (
                [VALUE] => 11.35
              )
            )
          )
        )
      )
    )
  )
)

Array (
  [0] => price Object (
    [mailservice] => Priority Mail<sup>&reg;</sup> Medium Flat Rate Box
    [rate] => 11.35
  )
)

... да. Мне нужно просмотреть их и вытащить значение RATE, которое здесь 11,35.

Для / каждый цикл провалился до сих пор, какие-нибудь другие идеи?

1 Ответ

1 голос
/ 17 февраля 2012

Вот функция, которая сделает это за вас:

findKey($myarray,$searchKey) {
    foreach($myarray as $key=>$value) {
       if($key==$searchKey) return $value;
       if(is_array($value) || is_object($value)) {
           $returned = findKey($value,$searchKey);
           if($returned) return $returned;
       }
    }
    return false;
}

// call it like this:
findKey($yourArray,"rate")
...