私はこの間違いを考えている可能性がありますが、PHP配列の各キーに静的な値を設定する関数はありますか?事前にみんなで配列内の各要素の値を設定する方法はありますか?
$staticVal = 1;
$myArray = array('key1'=> $staticVal, 'key2' => $staticVal, 'key3' => $staticVal, 'key4' => $staticVal);
ありがとう:
例えば、これに空想の代替があります。
私はこの間違いを考えている可能性がありますが、PHP配列の各キーに静的な値を設定する関数はありますか?事前にみんなで配列内の各要素の値を設定する方法はありますか?
$staticVal = 1;
$myArray = array('key1'=> $staticVal, 'key2' => $staticVal, 'key3' => $staticVal, 'key4' => $staticVal);
ありがとう:
例えば、これに空想の代替があります。
あなたはあなたがあなたの鍵を定義するために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>';
これは私が探しているようです! –
@BobbyBruceはうれしいです。ところで、それがあなたの要件を満たしていて、うまく動作していれば、受け入れられたとマークすることができます:) –
を使用して、このようにしてみてください、と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
)
あなたが使用できる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_walk
マップを使用しようとしましたか? – jycr753
それはいつも4要素でしょうか? – Qirel
@Qirelいいえ、必ずしも4つの要素であるとは限りません。これは単なる例です。 –