勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHPでキーや値は保持したまま順番を入れ替える

   2024/02/25  PHP

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

https://www.php.net/manual/ja/function.shuffle.php

 - PHP

  関連記事

htmlspecialcharsを通してMySQLに格納したものを元に戻して出力

MySQLにHTMLタグを入れたくない場合にhtmlspecialcharsを使 ...

PHPでファイルのダウンロード時に速度制限をかける方法(分割ダウンロード)

オンラインストレージサービス等で有料会員じゃない場合、ファイルのダウンロード時に ...

PHPで画像を上下反転させ保存する

やりたかった事は、下記の通り。 ・既にフォルダに保存されている画像を上下反転させ ...

CodeIgniterのバージョンの調べ方

CodeIgniterを使っているシステムがあったが、どうも記憶しているディレク ...

フォームからアップロードした画像にPHPで任意のテキストを追加する方法

以前フォームから送られてきた画像に対してサイトロゴみたいなロゴ画像を追加する記事 ...