2017-04-22 46 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; 
     }