[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以降でオネシャス。

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。




コメントを残す