2017-09-17 15 views
1

私はこの間違いを考えている可能性がありますが、PHP配列の各キーに静的な値を設定する関数はありますか?事前にみんなで配列内の各要素の値を設定する方法はありますか?

$staticVal = 1; 
$myArray = array('key1'=> $staticVal, 'key2' => $staticVal, 'key3' => $staticVal, 'key4' => $staticVal); 

ありがとう:

例えば、これに空想の代替があります。

+0

マップを使用しようとしましたか? – jycr753

+0

それはいつも4要素でしょうか? – Qirel

+0

@Qirelいいえ、必ずしも4つの要素であるとは限りません。これは単なる例です。 –

答えて

3

あなたはあなたがあなたの鍵を定義するためにarray_map()range()を組み合わせることができますarray_fill_keys()

$staticVal = 1; 
$keys = array('key1','key2','key3','key4'); 
$myArray = array_fill_keys($keys, $staticVal); 
print '<pre>'; 
print_r($myArray); 
print '</pre>'; 
+0

これは私が探しているようです! –

+1

@BobbyBruceはうれしいです。ところで、それがあなたの要件を満たしていて、うまく動作していれば、受け入れられたとマークすることができます:) –

2

を使用して、このようにしてみてください、とarray_combine()を通して、あなたの配列のキーとしてそれらを設定することができます。

array_combine()は、1つの値となり、他方が得られたアレイ内に、インデックスとなる二つの配列を組み合わせます。 array_map()range()によって作成された各インデックスの前にプレフィックスkeyを追加して、新しいインデックスを作成します。 range()は、1から始まり、$myArrayの要素数までのすべての値の配列を作成します。これにより、各インデックスの番号が作成されますので、、key2などとなります。これは、配列のキーとなり、array_combine()になります。

これは、キーの以前の値を無視して、元の配列内の要素の数には無関係です。

$staticVal = 1; 
$myArray = array($staticVal, $staticVal, $staticVal, $staticVal); 

$myArray = array_combine(array_map(function ($k) { 
          return 'key'.$k; 
         }, range(1, count($myArray))), 
         $myArray); 
print_r($myArray); 

出力:

Array (
    [key1] => 1 
    [key2] => 1 
    [key3] => 1 
    [key4] => 1 
) 
0

あなたが使用できる3つの機能があります:array_map

<?php 
$some_other_value = 'any value'; 
$tmp_arr = range(1, 5); 
array_map(function($value) { 
    return $some_other_value; 
}, $tmp_arr); 

// result 
/* 
[ 
    1 => 'any value', 
    2 => 'any value', 
    3 => 'any value', 
    4 => 'any value', 
    5 => 'any value' 
] 
*/ 
の使用状況に関する

  • array_mapを

あるarray_walk

  • array_filter例(静的な値ではないだけで)
  • 関連する問題