2016-07-23 8 views
2

このように書くことができます。サブ配列を作成中にキーを割り当てて配列の配列を作成

$key = "sid"; 
$values = array(1,2,3); 
$desired_array = array(); 

foreach($values as $value){ 
    $desired_array[] = array($key => $value); 
} 

print_r($desired_array); 

出力は次のようになります。

Array 
(
    [0] => Array 
     (
      [sid] => 1 
     ) 

    [1] => Array 
     (
      [sid] => 2 
     ) 

    [2] => Array 
     (
      [sid] => 3 
     )  
) 

私はそれが私のコードをより保守的に保つことができるかどうかわからなかったファンシーなPHP配列関数があることを望んでいました。

ここでは完成した解決策がありますが、それほど短くはないかもしれませんが、array_mapを使用するといつも満足しています。

$key = "sid"; 
$values = array(1,2,3); 
$desired_array = array_map(function($value) use($key){ 
    return array($key=>$value); 
},$values); 

答えて

2

array_map機能を使用して代替ソリューション:

$desired_array = array_map(function($v) use($key){ return [$key => $v]; }, $values); 
+0

use($ key)は、私が必要としていた方法でarray_mapを動作させるために必要なものです。ありがとう! – jbrahy

+0

@jbrahy、あなたは歓迎です – RomanPerekhrest

2

あなたはarray_mapを探していてもよいです。

それはこのような何か働くだろう:私はこのlinkも同様のデモのために働くべきだと考え

$array = [1, 2, 3]; 
$desired = array_map(function ($item) {return ['sid' => $item];}, $array); 

を。

+0

ありがとうございましたが、最初にarray_mapを試したときに私が見逃していたのはuse()でした。それはRomanPerekhrestの答えにあった。 – jbrahy

+0

うん、もしあなたが変数キーを望むなら、彼はより良い答えです。 – ToothlessRebel