私は多次元インデックス配列を持っています。各要素は、要素間でユニークなid
列の連想配列です(その値は配列内で繰り返されません)。列値に応じた連想配列への多次元インデックス配列
[indexed] =>Array
(
[0] => Array
(
[id] => john
[name] => John
[age] => 29
),
[1] => Array
(
[id] => peter
[name] => Peter
[age] => 30
),
[2] => Array
(
[id] => harry
[name] => Harry
[age] => 19
)
)
私の目標は、id
値によってインデックスさ多次元連想配列の中にこの配列を変換することです。
[indexed] =>Array
(
[john] => Array
(
[id] => john
[name] => John
[age] => 29
),
[peter] => Array
(
[id] => peter
[name] => Peter
[age] => 30
),
[harry] => Array
(
[id] => harry
[name] => Harry
[age] => 19
)
)
これまでのところ、配列要素をループして、最終的な配列を手動で作成するのが最善の試みです。
$associative = array();
foreach($indexed as $key=>$val) $associative[$val['id']] = $val;
私はそれが最もエレガントな解決策ではないと思います。組み込みの(より効率的な)関数で同じ結果を得ることは可能ですか?ここで
PHPでは、キーを配列の特定の値で上書きするinbuilt関数はありません。配列数が巨大でない場合、この解決策はOKです。さもなければ、処理が速いXMLまたはJSONを使用してください –