2017-04-22 105 views
0

假設我有這個數組,獲取某些關鍵,它的價值在多維數組在PHP

$cast = [ 
    'jon' => [ 
     'fullname' => 'Jon Snow', 
     'class' => 'warrior', 
    ], 
    'margery' => [ 
     'fullname' => 'Margery Tyell', 
     'class' => 'politician' 
    ] 
]; 

如何獲得鑰匙,它僅僅是一定的價值?像這樣,

$name = ['jon'=>'Jon Snow', 'margery'=>'Margery Tyrell']; 

是否有任何支持此功能,所以它不必循環?

任何答案將不勝感激!

回答

2

您可以通過多維數組迭代,並添加鍵值,並在新的一維數組像這樣在內部數組的索引fullname值:

$names = []; 
foreach ($cast as $character => $character_details) { 
    $names[$character] = $character_details['fullname']; 
} 

編輯另外,如果你不想遍歷元素,可以使用array_map函數,該函數將函數作爲參數,您可以指定如何映射數組中的每個元素。在你的情況下,你只需要返回元素的fullname

$names = array_map(
    function ($value) { 
     return $value['fullname']; 
    }, 
    $cast 
); 
+0

這可以通過某些功能來實現嗎? – Angger

+0

@Angger我編輯了我的答案根據您的問題的編輯。希望能幫助到你。 – granit

0

我想你已經遍歷它,只提取有趣的你的密鑰。在這裏你有一個例子:

function getValuesForKey($array, $key){ 
      $result = []; 
      foreach($array as $k => $subarray){ 
       if(isset($subarray[$key])){ 
        $result[$k] = $subarray[$key]; 
       } 
      } 
      return $result; 
     }