2012-01-24 8 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

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

の値を使用して$userの値を取得することができますしかし、の値を使用して$userの値を取得するにはどうすればよいですか私はforeachループを使用して試してみましたが、右のそれを得ることはできません

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

、のような新しい配列には、新しい配列がすべきですか?

答えて

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でそれはしかし、 'NULL'の感謝を返す> = 3.5 – afuzzyllama

+0

に動作します。 –

+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); 
関連する問題