2013.
02.
10
14:45:23
配列のランダム並び替えはこんだけφ(--)
サンプルコードφ(--)
結果φ(--)
ちなみに連想配列の場合、キーが無くなる(新たに連番のキー(要素番号)が振られる)ので
ご注意ください。
サンプルコードφ(--)
結果φ(--)
連想配列でキーを維持したままランダムに並び替えたければ
「array_keys()」関数でキー値のみ取り出してそれを並び替えた後に
対応する値を紐づけた連想配列を新たに作るってな流れですかね。
ほれサンプルφ(--)
ほれ結果φ(--)
中々使いどころが難しい関数ではありますが、
私は自前のタグクラウドもどきを作成するときに使いました。
shuffle([対象の配列]);
サンプルコードφ(--)
<?php
$ary = array("a", "b", "c", "d", "e");
var_dump($ary);
shuffle($ary);
var_dump($ary);
?>
$ary = array("a", "b", "c", "d", "e");
var_dump($ary);
shuffle($ary);
var_dump($ary);
?>
結果φ(--)
array(5) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
string(1) "d"
[4]=>
string(1) "e"
}
array(5) {
[0]=>
string(1) "c"
[1]=>
string(1) "d"
[2]=>
string(1) "a"
[3]=>
string(1) "b"
[4]=>
string(1) "e"
}
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
string(1) "d"
[4]=>
string(1) "e"
}
array(5) {
[0]=>
string(1) "c"
[1]=>
string(1) "d"
[2]=>
string(1) "a"
[3]=>
string(1) "b"
[4]=>
string(1) "e"
}
ちなみに連想配列の場合、キーが無くなる(新たに連番のキー(要素番号)が振られる)ので
ご注意ください。
サンプルコードφ(--)
<?php
$ary = array("a" => "A", "b" => "B", "c" => "C");
var_dump($ary);
shuffle($ary);
var_dump($ary);
?>
$ary = array("a" => "A", "b" => "B", "c" => "C");
var_dump($ary);
shuffle($ary);
var_dump($ary);
?>
結果φ(--)
array(3) {
["a"]=>
string(1) "A"
["b"]=>
string(1) "B"
["c"]=>
string(1) "C"
}
array(3) {
[0]=>
string(1) "A"
[1]=>
string(1) "C"
[2]=>
string(1) "B"
}
["a"]=>
string(1) "A"
["b"]=>
string(1) "B"
["c"]=>
string(1) "C"
}
array(3) {
[0]=>
string(1) "A"
[1]=>
string(1) "C"
[2]=>
string(1) "B"
}
連想配列でキーを維持したままランダムに並び替えたければ
「array_keys()」関数でキー値のみ取り出してそれを並び替えた後に
対応する値を紐づけた連想配列を新たに作るってな流れですかね。
ほれサンプルφ(--)
<?php
$ary = array("a" => "A", "b" => "B", "c" => "C", "d" => "D", "e" => "E");
var_dump($ary);
//キー取り出し
$aryKey = array_keys($ary);
//キーを並び替え
shuffle($aryKey);
$newAry = array(); //結果を入れる配列
//配列並び替え
foreach($aryKey as $key){
$newAry[$key] = $ary[$key];
}
var_dump($newAry);
?>
$ary = array("a" => "A", "b" => "B", "c" => "C", "d" => "D", "e" => "E");
var_dump($ary);
//キー取り出し
$aryKey = array_keys($ary);
//キーを並び替え
shuffle($aryKey);
$newAry = array(); //結果を入れる配列
//配列並び替え
foreach($aryKey as $key){
$newAry[$key] = $ary[$key];
}
var_dump($newAry);
?>
ほれ結果φ(--)
array(5) {
["a"]=>
string(1) "A"
["b"]=>
string(1) "B"
["c"]=>
string(1) "C"
["d"]=>
string(1) "D"
["e"]=>
string(1) "E"
}
array(5) {
["c"]=>
string(1) "C"
["a"]=>
string(1) "A"
["d"]=>
string(1) "D"
["e"]=>
string(1) "E"
["b"]=>
string(1) "B"
}
["a"]=>
string(1) "A"
["b"]=>
string(1) "B"
["c"]=>
string(1) "C"
["d"]=>
string(1) "D"
["e"]=>
string(1) "E"
}
array(5) {
["c"]=>
string(1) "C"
["a"]=>
string(1) "A"
["d"]=>
string(1) "D"
["e"]=>
string(1) "E"
["b"]=>
string(1) "B"
}
中々使いどころが難しい関数ではありますが、
私は自前のタグクラウドもどきを作成するときに使いました。