私は1 000以上のアイテムを持つ大きな連想配列を持っていますが、1つのキーの名前を変更したいが、順序を保持する必要があります。注文を保存して配列のキーを変更する最もエレガントな方法
完全な配列を反復処理して新しい配列にコピーすることはありません。
私は1 000以上のアイテムを持つ大きな連想配列を持っていますが、1つのキーの名前を変更したいが、順序を保持する必要があります。注文を保存して配列のキーを変更する最もエレガントな方法
完全な配列を反復処理して新しい配列にコピーすることはありません。
はarray_splice機能を見てみましょう:http://php.net/manual/en/function.array-splice.php
あなたは配列のキーを変更するにはどうすればよいPHPでは、[このジョブに
$置換の配列として与えられたキーは保存されません –
あなたは正しいです – Fender
$arr[$newkey] = $arr[$oldkey];
unset($arr[$oldkey]);
は、順序を保持しません。参照:http://ideone.com/XV6UG – Fender
$array_keys = array_keys($array);
$array_keys[array_search('old', $array_keys)] = 'new';
$array = array_combine($array_keys, $array);
これは動作していますが、大きな配列に大量のRAMを割り当てる新しい配列にすべてのキーをコピーします –
残念ながら、私は残念ながら、どの解決策も(a)新しい配列( s)。私はここで間違っているのが大好きです。 – MichaelRushton
PHPのCレベルから、可能でなければなりませんが、関数を見つけることができません:( –
$array[$newkeyname] = $array[$oldkeyname];
unset($array[$oldkeyname]);
これは上記と同じ答えですが、質問に答えません。これは配列の順序を保持しません –
申し訳ありませんが、私はそれを開いたときに質問に答えませんでした。 – bendataclear
を行いますが重複する可能性を要素?](http://stackoverflow.com/questions/240660/in-php-how-do-you-change-the-key-of-an-array-element) –
キーの値を知っているか、あなたが変更したいキーのインデックスか両方を知っていますか? – hakre
私はインデックスの位置ではなく、キーの名前を知っています –