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にて開始日と終了日をユーザが入力すると、その期間内の合計日数を出力させたい ...
-
-
PHPでHTMLメールを送信する方法(PHPMailerあり無しの2パターン)
PHPでHTMLメールを送信したい。また、メール関連の機能を実装する際は環境によ ...
-
-
PHPにて指定した画像に対して、繰り返し透かし画像処理する方法
画像素材等のサイトで無料版の画像に対して「sample」等の透かし画像処理を行っ ...
-
-
PHPで「Warning: date(): It is not safe to…」エラーの対応方法
PHPでdate関数を使った際に「Warning: date(): It is ...
-
-
PHPとLINEを連携させて通知を送る方法(file_get_contents / curlの2パターン)
PHPとLINEを連携させ、LINEに何らかの通知メッセージを送信したい。以下に ...