2012-01-24 161 views
1

我有一個數組$minus數組值來檢查PHP中的另一個數組值?

array(3) { [0]=> string(6) "people" 
      [1]=> string(7) "friends" 
      [2]=> string(8) "siblings" 
     } 

而且我有一個數組$user

array(3) { ["people"]=> string(3) "100" 
      ["friends"]=> string(2) "10" 
      ["siblings"]=> string(2) "57" 
     } 

我可以通過使用$minus像值獲得的$user值,

echo $user[$minus[0]] . ', ' . $user[$minus[1]] . ', ' . $user[$minus[2]]; 
// Would echo: 100, 10, 57 

但如何通過使用的值來獲得$user的值到一個新的數組,新數組應該是這樣的,

array(3) { [0]=> string(3) "100" 
      [1]=> string(2) "10" 
      [2]=> string(2) "57" 
     } 

我一直在使用foreach環路嘗試,但永遠無法得到它的權利?

回答

4
foreach($minus as $key=>$value) { 
    $new_array[$key] = $user[$value]; 
} 
+0

請試試這個謝謝你的回答。 –

+0

工作出色,謝謝你。有沒有什麼好的文檔鏈接? –

+0

PHP文檔總是精彩 - http://php.net/manual/en/control-structures.foreach.php。 –

3

使用array_map,PHP> = 5.3只

$new_array = array_map(function($item) use ($user) {return $user[$item];}, $minus); 
+0

此解決方案僅在PHP工作> = 3.5 – afuzzyllama

+0

它雖然返回'NULL'感謝。 –

+0

@ novactown.com你的PHP版本是什麼? –

0
$new_array = array($user[$minus[0]], $user[$minus[1]], $user[$minus[2]]); 
+0

我沒有倒下,但它不是最好的解決方案 - 只有當鍵有這個名字時,它纔會起作用,並且正好有3個成員。如果鍵名或數組大小發生變化,則必須更改。 –

1
$new_array= array(); 
foreach ($minus as $key => $value){ 
$new_array[$key] = $user[$value]; 
    } 
print_r($new_array); 
0
$minus = array(0 => "people", 
       1 => "friends", 
       2 => "siblings" 
      ); 

$user = array("people" => "100", 
       "friends" => "10", 
       "siblings" => "57" 
      ); 


$newArray = $minus; 
array_walk($newArray,function(&$item, $key, $prefix) { $item = $prefix[$item]; },$user); 

var_dump($newArray); 
相關問題