PHP

キーを維持したまま配列をシャッフルするシンプルな方法

PHPのshuffle()ってホラ、あれですよね?
キーを張り替えて混ぜてるから、キーが連番で振り直されちゃうっていう。
やはりキーを維持したまま混ぜたい時もあるんで、ashuffle()とかは無いし、どうするよって思ってやってみたら1行で実現できたのでメモ。

uasort($a, function() { return mt_rand(-1, 1); });


テストコードはこちら。

$a = array(
    'a' => 'aaaa',
    'b' => 'bbbb',
    'c' => 'cccc',
    'd' => 'dddd',
    'e' => 'eeee',
    'f' => 'ffff',
);

print_r($a);

uasort($a, function() { return mt_rand(-1, 1); });

print_r($a);

無名関数使ってるんで、PHPは5.3以降でオネシャス。

スポンサーリンク
記事を書いた人

システムえんじにゃー🐈
趣味はエレキギター、自転車など。作曲したい。
World of Warshipsやってます。
記事に関する質問はお気軽にどうぞ。

surface0 (さーふぇす)をフォローする
surface0 (さーふぇす)をフォローする

コメント

タイトルとURLをコピーしました