2012-06-14 25 views
3

如何檢查數組的子鍵中是否存在鍵?如果該物品的鑰匙被找到,那麼返回該物品?查找數組中的子鍵中存在的鍵?

舉例來說,我有這樣的陣列,

Array 
(
    [0] => Array 
     (
      [a] => Array 
       (
        [quantity_request] => 1 
        [time_created] => 1339688613 
        [variant] => Array 
         (
         ) 

       ) 

     ) 

    [1] => Array 
     (
      [b] => Array 
       (
        [quantity_request] => 1 
        [time_created] => 1339688631 
        [variant] => Array 
         (
         ) 

       ) 

     ) 

    [2] => Array 
     (
      [c] => Array 
       (
        [quantity_request] => 1 
        [time_created] => 1339688959 
        [variant] => Array 
         (
         ) 

       ) 

     ) 

) 

我想找到鑰匙「B」,並在它返回的一切,像我這是什麼之後,

[b] => Array 
       (
        [quantity_request] => 1 
        [time_created] => 1339688631 
        [variant] => Array 
         (
         ) 

       ) 

我嘗試與此,但沒有回報,

if (array_key_exists('b', $this->content)) { 
       echo "The 'b' element is in the array"; 

} 

任何想法?

回答

1
function get_letter($letter){ 
    foreach($this->content as $v){ 
     if(array_key_exists($letter, $v) { 
      return $v[$letter]; 
     } 
    } 
    return false; 
} 

$array = get_letter('a'); 
0

難道你只是遍歷外部數組,檢查每個數組裏面的密鑰?

foreach($this->content as $arr) { 
    if(array_key_exists('b', $arr) { 
    echo "Found it"; 
    } 
} 
+0

我想有更好的方法,然後循環... – laukok

+0

@lauthiamkok:爲什麼你接受答案呢? – hakre

0

的foreach()的根段列陣,然後array_key_exists()

foreach ($array as $key => $value) { 
    if (array_key_exists('b', $array[$key])) { 
     return $array[$key]['b']; 
    } 
} 
+0

謝謝你的答案,Pierpaolo。 – laukok

0

這裏的代碼看起來不錯,但我想知道數組來自哪裏或它的定義在哪裏?一個可能縮小範圍的建議是在$ this-> content上使用is_array來確保它是一個合適的數組。

0

我不會實際使用此,因爲它不是明確的代碼,但是,它是一個很酷的一個襯墊的PHP 5.4

$val = call_user_func_array('array_merge', $array)['b'];