0

配列が存在するとしましょう:

$array = array(
    '1001' => 'a',
    '1002' => 'b',
    '1003' => 'c',
);

ここで、誰かがその配列を逆にしたいとしましょう:

$array = array_reverse($array);

問題は、array_reverseすべての数値を整数にキャストしてからインデックスをリセットするように見えることです。

0 => 'c'  - should be '1003' => 'c'
1 => 'b'  - should be '1002' => 'b'
2 => 'a'  - should be '1001' => 'a'

誰かが試したかもしれないのはこれでした-しかし、運がありませんでした(予想どおり):

$array[(string) $index] = 'a';

ここ codepad でこれを自分で体験することもできます。

これはどのように解決できますか?これを処理できる独自のマッピング関数を作成する必要がありますか、それとも他の方法がありますか?

4

1 に答える 1

6

次のコードを使用するだけです。

array_reverse($array, true)

PHP のドキュメントに従って、キーを保存するには、2 番目のパラメーターを次のように設定する必要があります。true

于 2013-10-05T11:40:45.253 に答える