勉強したことのメモ

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

  関連記事

CodeIgniter4でのメール送信方法(テキスト・HTMLメール)

CodeIgniter4.4.4でテキストメール及びHTMLメールを送信したい。 ...

PHPの$_SERVER["REMOTE_ADDR"]でIPアドレスが正常に取得できない場合

とある環境でPHPの$_SERVER["REMOTE_ADDR"]でIPアドレス ...

PHPでbool値(true / false)を文字列として出力する方法

PHPにてbool値(true / false)をechoで出力するとtrueは ...

Facebookのタイムラインを取得して表示する方法

Facebookのタイムラインを取得してきて、表示させたいという案件があった。 ...

PHPで実行時間の測定

$start_time = microtime(true); /***測定したい ...