PHP配列ソートアルゴリズムの概要
PHP での配列の要素のソートは非常に頻繁に使用され、以前のプロジェクトでも使用されていますが、私たちは皆、asort や arsort などの PHP ネイティブ関数を使用しています。以下にいくつかの機能を追加しますので、ご自身で見直して要約することもできます。
/* * 插入排序(一维数组) * 每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当的位置,使数列依然有序;直到待排序的数据元素全部插入完成为止。 */ function insertSort($arr){ if(!is_array($arr) ||count($arr)==0){ return $arr; } $count =count($arr); for($i=1;$i<$count;$i++){ if(isset($arr[$i])){ $tmp =$arr[$i];//获取后一个元素的值 $j =$i - 1;//获取前面的下标 while($arr[$j] >$tmp){//如果前面一个比后面一个大, 这里是从小到大 $arr[$j+1] =$arr[$j];//把小的元素和前面的对换,直到移动到合适的位置,在移动下一个 $arr[$j] =$tmp; $j--; } } } return $arr; } /* * 选择排序(一维数组) * 每一趟从待排序的数据元素中选出最小(最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 */ function selectSort($arr){ if(!is_array($arr) ||count($arr) == 0) { return $arr; } $count =count($arr); for($i=0;$i<$count;$i++){ $k =$i; for($j=$i+1;$j<$count;$j++){ if ($arr[$k] >$arr[$j]) $k =$j;//找出最小的 if ($k !=$i){ $tmp =$arr[$i]; $arr[$i] =$arr[$k]; $arr[$k] =$tmp; } } } return $arr; } /* * 冒泡排序(一维数组) * 两两比较待排序数据元素的大小,发现两个数据元素的次序相反即进行交换,直到没有反序的数据元素为止 */ function bubbleSort($array){ $count =count($array); if ($count <= 0) { return false; } for($i=0;$i<$count;$i++){ for($j=$count-1;$j>$i;$j--){ if ($array[$j] <$array[$j-1]){//比较找到的数进行交换 $tmp =$array[$j]; $array[$j] =$array[$j-1]; $array[$j-1] =$tmp; } } } return $array; } /* * 快速排序(一维数组) * */ function quickSort($array){ if (count($array) <= 1){ return $array; } $key =$array[0]; $left_arr =array(); $right_arr =array(); for ($i=1;$i<count($array);$i++){ if ($array[$i] <=$key){ $left_arr[] =$array[$i]; }else{ $right_arr[] =$array[$i]; } } $left_arr = quickSort($left_arr); $right_arr = quickSort($right_arr); return array_merge($left_arr,array($key),$right_arr); } /** * 按照元素的值进行排序 * strOrder 为排列的顺序 asc 升序 desc 降序 */ function sortByVal($arr,$strOrder='asc') { if(!is_array($arr) ||count($arr)==0) { return $arr; } $arrReturn =array(); foreach($arr as $key=>$val) { $arrKey[] =$key; $arrVal[] =$val; } $count =count($arrVal); if($count) { //创建key的顺序数组 for($key=0;$key<$count;$key++) { $arrKeyMap[$key] =$key; } //对值进行排序 for($i=0;$i<$count;$i++) { for($j =$count-1;$j>$i;$j--) { //<从小到大排列 升降在这修改 $bol =$strOrder =='asc' ?$arrVal[$j]<$arrVal[$j-1] :$arrVal[$j]>$arrVal[$j-1]; if($bol){ $tmp =$arrVal[$j]; $arrVal[$j] =$arrVal[$j-1]; $arrVal[$j-1] =$tmp; //值的冒泡排序,引起key的数组的交互 $keytmp =$arrKeyMap[$j]; $arrKeyMap[$j] =$arrKeyMap[$j-1]; $arrKeyMap[$j-1] =$keytmp; } } } if(count($arrKeyMap)) { foreach ($arrKeyMap as $val) { $arrReturn[] =$arrKey[$val]; } } return $arrReturn; } } /** * 使用原生的函数进行数组按照值进行排列 */ function arraySortByVal($arr,$keys,$type='asc'){ $keysvalue =$new_array =array(); foreach ($arr as $k=>$v){ $keysvalue[$k] =$v[$keys]; } if($type =='asc'){ asort($keysvalue); }else{ arsort($keysvalue); } reset($keysvalue); foreach ($keysvalue as $k=>$v){ $new_array[$k] =$arr[$k]; } return $new_array;
配列値をソートする次の 2 つの方法では、1 つは独自に実装され、もう 1 つはネイティブの PHP 関数を使用します。実際、少量のデータ (通常は 1 ページのデータ) であればソートが可能です。大量のデータのソートを伴う場合は、それを MYSQL の基本クラスに統合することをお勧めします。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 配列を使用してチャートや統計グラフを生成および表示する方法 PHP は、強力なデータ処理機能とグラフィック生成機能を備えた、広く使用されているサーバーサイド スクリプト言語です。 Web 開発では、データのグラフや統計グラフを表示する必要がよくありますが、PHP 配列を使用すると、これらの機能を簡単に実装できます。この記事では、PHP 配列を使用してチャートや統計グラフを生成および表示する方法を紹介し、関連するコード例を示します。必要なライブラリ ファイルとスタイル シートの導入 開始する前に、いくつかの必要なライブラリ ファイルを PHP ファイルに導入する必要があります

PHP 配列を使用して動的なスライドショーと画像表示を生成する方法 スライドショーと画像表示は Web デザインの一般的な機能であり、カルーセルやギャラリー表示などのシナリオでよく使用されます。一般的なサーバーサイド スクリプト言語として、PHP にはデータを処理して動的な HTML ページを生成する機能があり、動的なスライドショーや画像表示の生成に非常に適しています。この記事では、PHP 配列を使用して動的なスライドショーと画像表示を生成する方法と、対応するコード例を紹介します。画像データを準備する まず、画像パス データのセットを準備する必要があります。

PHP 配列平均関数には次のものが含まれます: 1. array_sum()、配列内のすべての値の合計を計算するために使用されます平均を計算するには、配列内のすべての値を加算してから除算します。配列要素の数; 2、array_reduce()、配列を反復し、初期値を使用して各値を計算するために使用されます; 3. array_mean()、配列の平均を返し、最初に配列の合計を計算するために使用されます。配列要素の数を計算し、合計を配列要素の数で割って平均を取得します。

PHP 配列を使用してユーザーのログインと権限の管理機能を実装する方法 Web サイトを開発する場合、ユーザーのログインと権限の管理は非常に重要な機能の 1 つです。ユーザー ログインにより、ユーザーを認証し、Web サイトのセキュリティを保護することができます。権限管理では、Web サイト上でのユーザーの操作権限を制御し、ユーザーが許可されている機能のみにアクセスできるようにします。この記事では、PHP 配列を使用してユーザーのログインと権限の管理機能を実装する方法を紹介します。簡単な例を使用してこのプロセスを説明します。まず作成する必要があります

PHP の配列キーと値のペアは、キーと対応する値で構成されるデータ構造です。キーは配列要素の識別子であり、値はキーに関連付けられたデータです。キーを識別子として使用してデータを保存およびアクセスできるようになり、キーと値のペアを使用することで、配列内の要素の操作と管理がより簡単になり、プログラム開発がより柔軟かつ効率的になります。

PHP で配列を決定するには、いくつかの方法があります。 1. すべてのタイプの配列に適した count() 関数を使用します。ただし、渡されたパラメータが配列でない場合、count() 関数は 0 を返すことに注意してください。2. 他のプログラミング言語との互換性を維持するために使用される sizeof() 関数を使用します。3. カスタム関数では、ループを使用して配列を走査することにより、配列を走査するたびにカウンターが 1 ずつ増加し、最終的に配列の長さが取得されます。カスタム関数は実際のニーズに応じて変更および拡張できるため、より柔軟になります。

PHP 配列を 2 次元から 1 次元配列に変換する方法: 1. ループ トラバーサルを使用して 2 次元配列を走査し、各要素を 1 次元配列に追加します; 2. 「array_merge」関数を使用して複数の要素をマージします配列を配列に. 二次元配列を「array_merge」関数にパラメータとして渡して一次元配列に変換; 3. 「array_reduce」関数を使用すると、配列内のすべての値を処理できますコールバック関数を介して、最終的に結果を返します。

PHP 配列は、開発プロセス中によく使用される非常に一般的なデータ構造です。ただし、データ量が増加すると、アレイのパフォーマンスが問題になる可能性があります。この記事では、PHP 配列のパフォーマンス最適化手法をいくつか検討し、具体的なコード例を示します。 1. 適切なデータ構造を使用する PHP には、通常の配列に加えて、SplFixedArray、SplDoublyLinkedList など、特定の状況で通常の配列よりもパフォーマンスが優れたデータ構造がいくつかあります。
