2012-01-24 116 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); 
相关问题