2015-04-30 123 views
3

鍵陣列的價值觀基礎讓我們兩個數組:獲得的第二陣列在PHP

$aliases = array(
    'id' => 'real_id', 
    'date' => 'real_date', 
    'name' => 'real_name' 
); 
$data = array(
    'id' => 1, 
    'name' => 'Lorem ipsum' 
); 

我想檢索$data陣列(無需檢查項中是否存在定義的鍵每$aliases值,我已經在這一點上使用array_intersect_key())。這是預期的結果:

array('real_id', 'real_name'); 

目前,我能夠使用foreach做到這一點:

$realkeys = array(); 
foreach(array_keys($data) as $key) { 
    $realkeys[] = $aliases[$key]; 
} 

但是它有什麼天然的PHP函數做更巧妙的方式?

+1

有,你已經使用過'array_intersect_key' – Ghost

回答

4

您可以使用PHP的array_intersect_key這樣的:

<?php 
     $aliases = array(
       'id' => 'real_id', 
       'date' => 'real_date', 
       'name' => 'real_name' 
     ); 
     $data = array(
       'id' => 1, 
       'name' => 'Lorem ipsum' 
     ); 

     print_r(array_values(array_intersect_key($aliases, $data))); 
    ?> 

陣列([0] => real_id [1] => real_name)