勉強したことのメモ

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

  関連記事

PHPでメルマガを配信する方法(BCCで一括送信するパターン)

PHPでメールマガジンを配信したかった。宛先のメールアドレスはMySQLに保存さ ...

PHP Simple HTML DOM Parserを使用したスクレイピング方法

PHPでスクレイピングする際、preg_match_all等を用いて必要なデータ ...

PHPにて「みんなの自動翻訳」のAPIで日本語から英語に翻訳する方法

翻訳用のWeb APIを利用しようとすると「月に〇〇リクエストまでは無料」とかだ ...

PHPでメール送信時に返信先(Reply-To)を指定する方法

PHPにてメールを送信し、そのメールに対して返信しようとすると通常は送信元のメー ...

PHPとPAY.JPを用いてサイト内にクレカ決済及びキャンセル機能を実装する方法

先日PHPとStripeを用いてサイト内にクレカ決済及びキャンセル機能を実装する ...