同じサイズの配列が2つあります。 2つをマージして、1つの値が新しい配列のキーインデックスになり、新しい配列の値がもう1つの値になるようにしたいと思います。
現在、配列をループして手動で新しい配列を作成しているだけですが、これについてよりエレガントな方法があると感じています。この目的のための配列関数は見当たりませんが、何かを見逃しているのでしょうか?これらの線に沿ってこれを行う簡単な方法はありますか?
$mapped_array = mapkeys($array_with_keys, $array_with_values);
PHP.netの array_combine()
を参照してください。
(読みやすいドキュメントから)
array_combine — 1つの配列をキーに使用し、別の配列をその値に使用して配列を作成する
説明
array array_combine ( array $keys , array $values )
Keys配列の値をキーとして使用し、values配列の値を対応する値として使用して、配列を作成します。
パラメータ
keys-使用するキーの配列。キーの不正な値は文字列に変換されます。
values-使用する値の配列
例
<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'Apple', 'banana');
$c = array_combine($a, $b);
print_r($c);
?>
上記の例は出力します:
Array
(
[green] => avocado
[red] => Apple
[yellow] => banana
)
これでうまくいくはずです
function array_merge_keys($ray1, $ray2) {
$keys = array_merge(array_keys($ray1), array_keys($ray2));
$vals = array_merge($ray1, $ray2);
return array_combine($keys, $vals);
}