タグ:PHPの検索結果

【プログラミング】どんな言語でも使える配列をランダムにソートする方法

使い道 ブログでランダムな記事を表示させたい...。 そう思ったことはありませんか? そんなピンポイントでなくても、配列をランダムに入れ替えたいと思ったことありませんか? 今回は、そんな人にお得な、どんな言語でも使える配列シャッフルプログラム思いついたので、を紹介したいと思います。 どんな言語でも使える配列シャッフルプログラム どんな言語でも使えると言っても、もちろん言語によって構文は違うので、その仕組みを紹介したいと思います。 これを思いついたのが、冒頭でも書いた通り、ランダムな記事を表示させたいという希望からでした。 ですので、今回はPHPで紹介させていただきます。 用意するもの ・乱数を返す関数 ・マルチソートプログラム(複数個の配列を、一つの配列のソートに沿ってソートできるプログラム) 乱数を返す関数はともかく、マルチソートプログラムはちょっときついという方は、下を参考にしてください。(バブルソート) for (i = 0 要素数回繰り返す) { for (j = i + 1; 要素数回繰り返す) { if (配列[i] > 配列[j]) { //ソートされる配列 テンプレート = 配列[i]; 配列[i] = 配列[j]; 配列[j] = テンプレート; //ソートされる配列と同じ順番に他の配列を並び替える テンプレート = 他の配列[i]; 他の配列[i] = 他の配列[j]; 他の配列[j] = テンプレート; } } } さて、次こんな感じのプログラムを関数にしたら、本題のランダムに入れ替えるプログラムに入っていきましょう。 もう分かり切っていると思いますが、今回のプログラムは、 乱数が入った同じ要素数の配列を用意し、その乱数の配列とランダムに入れ替えたい配列をマルチソートする というものです。 まだちょっと分からないという方は、下のPHPで書いたプログラムを見てください。 PHPを知らない方でも、PHPの文法は簡単というか模範的なので、おおよそは理解できると思います。 function ArrayRandomizer($Array) { $new_array = $Array; $rmize_status = array(); for ($i = 0; $i < count($new_array); $i++) { $rmize_status = array_merge($rmize_status, array(rand(0, 1000))); } array_multisort($rmize_status, $new_array); return $new_array; } PHPの関数について array():配列を作成(今回は空の配列を作成) count(配列):配列の要素数 array_merge(配列1, 配列2):配列1の後ろに配列2を付け足して、それ全体の配列を作成する array_multisort(配列1, ...):マルチソートプログラム(第一引数の配列のソートに沿って他の配列をソートする) と、こんな感じです。 今考えたら誰でも思いつきそうなプログラムですね。 以上、どんな言語でも使える使える、配列をランダムに入れ替えられるプログラムでした。

最近人気な記事


【ソフト制作】麻雀点数計算ソフト page.1

【数学】連続する自然数の和で表せる数と規則性(証明)

【プログラミング】C/C++ のメリットデメリット

【ぐろこーんの大学受験論】長文・文章問題を解くには、語彙力(単語力)が必要

【ぐろこーんの大学受験論】理系一筋の僕が国語について考えてみた

総括管理人のおすすめ


【数学】ラグランジュの補間を求める[長記事]

【数学】グラフの長さを求める公式を求めてみた PART 1

【数学】グラフの長さを求める公式を求めてみた PART 2

【数学】[分からない人向け]直線を表すベクトル、p = sa + tb (s + t = 1) って結局どういうイメージなのか

【数学】[分からない人向け]ベクトルの一次独立のイメージの仕方