勉強したことのメモ

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

  関連記事

MySQLとPHPの「image-comparator」ライブラリを使用して類似画像検索を実装する方法

先日PHPで画像を比較して類似度を算出する「image-comparator」ラ ...

PHPで指定月の月末日を取得

今月の、だったらdate('t')でいくけど指定月の場合は どうしたらいいのか分 ...

PHPでサイトマップを動的に生成する方法

WordPress等のCMSは使っておらず、自動更新するサイトがあり、そのサイト ...

PHPにて指定した画像に対して、繰り返し透かし画像処理する方法

画像素材等のサイトで無料版の画像に対して「sample」等の透かし画像処理を行っ ...

PHPにて指定した期間内の合計日数を出力する方法

PHPにて開始日と終了日をユーザが入力すると、その期間内の合計日数を出力させたい ...