勉強したことのメモ

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

  関連記事

数値を3桁とかでカンマ区切りにする

見たこと無い関数が業務中にあったのでメモ。 number_format ■参考サ ...

PHPのLocationにGETパラメータとして変数を入れる方法

PHPでページ遷移したい際に以下のように記述すると思う。 header("Loc ...

PHPでエラーメッセージを見やすくするwhoopsの利用方法

PHPのエラーメッセージが見づらい。これはこういうもの、と諦めていたがCodei ...

phpdotenvライブラリを使用してPHPで.envファイルを読み込ませる方法

CodeIgniterを勉強していた際に各種設定は「.env」というファイルに記 ...

Mailtrap & PHPMailerでメールサーバ無しの環境でもメール送信テストを行う方法

開発環境等メールサーバが無い環境でメール送信テストを行う際にMailtrapとい ...