PHPでキーや値は保持したまま順番を入れ替える
2024/02/25
PHPで連想配列のキーや値は保持したまま順番をランダムに入れ替えたかった。一発で入れ替える関数は見つからなかったけど、以下の方法でいけるみたい。
ソースコード
<?php
$tmp = array(
0 => array('name' => '田中', 'score' => 100),
1 => array('name' => '山田', 'score' => 80),
2 => array('name' => '佐藤', 'score' => 50),
3 => array('name' => '鈴木', 'score' => 30),
4 => array('name' => '高橋', 'score' => 10),
5 => array('name' => '山本', 'score' => 0),
);
$keys = array_keys($tmp);
shuffle($keys);
foreach($keys as $key){
$data[$key] = $tmp[$key];
}
var_dump($data);
/*結果
array(6) {
[2]=> array(2) { ["name"]=> string(6) "佐藤" ["score"]=> int(50) }
[1]=> array(2) { ["name"]=> string(6) "山田" ["score"]=> int(80) }
[3]=> array(2) { ["name"]=> string(6) "鈴木" ["score"]=> int(30) }
[5]=> array(2) { ["name"]=> string(6) "山本" ["score"]=> int(0) }
[4]=> array(2) { ["name"]=> string(6) "高橋" ["score"]=> int(10) }
[0]=> array(2) { ["name"]=> string(6) "田中" ["score"]=> int(100) } }
*/
shuffle
関連記事
-
-
PHPで配列じゃないものに対してソート
PHP Warning: sort() expects parameter 1 ...
-
-
Codeigniter3で異なるデータベースを使用する
Codeigniterで2つのコンテンツがあって、それぞれ別のデータベースを使用 ...
-
-
ブログサービスの様にサブドメインを動的に生成する方法
ブログサービスの様に「hoge」というログインIDを作成した際「hoge.blo ...
-
-
PHPのHTTPリクエストライブラリ「Requests for PHP」の利用方法
PHPで外部のAPI等にリクエストする際に可能であればfile_get_cont ...
-
-
Class 'DOMDocument' not foundエラーの対処方法
PHPでphpQueryというライブラリを利用しようとすると「Fatal err ...