ホームページ >バックエンド開発 >PHPチュートリアル >PHP 配列のマージスキルについて話す_PHP チュートリアル

PHP 配列のマージスキルについて話す_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:27:58837ブラウズ

PHP 配列を使用するときに、PHP 配列のマージの問題が発生することがあります。この記事では、PHP 配列のマージと PHP 配列のソートについて説明します。 PHP 配列のソートは、実際には PHP 配列をソートします。 1995 年半ばに、PHP 2.0 がリリースされました。 2 番目のバージョンは PHP/FI (フォーム インタプリタ) と呼ばれます。 PHP/FI は mSQL のサポートを追加し、それ以来、動的 Web 開発における PHP の地位を確立しました。

1996 年末までに、PHP/FI を使用する Web サイトは 15,000 ありましたが、1997 年半ばまでに、PHP/FI を使用する Web サイトの数は 50,000 を超えました。 1997 年半ばに、開発チームに Zeev Suraski と Andi Gutmans が加わり、3 番目のバージョンは PHP3 と名付けられ、2000 年に多くの新機能が追加されました。 。この記事では、データベース クエリの結果セットが並べ替えられます。 mysql の in ステートメントを使用して取得された結果など、データベース クエリの結果は直接使用できない場合があるため、結果を何らかの方法で並べ替える必要があります。このとき、PHP 配列をソートする必要があります。データベースの結果を並べ替えるには、次の例を参照してください。 この例では、データ配列の各セルがテーブル内の行を表します。これは、データベースが配列データを保存する一般的な方法です。この例のデータは次のとおりです。
<ol class="dp-xml">
<li class="alt"><span><span>volume | edition  </span></span></li>
<li class=""><span>-------+--------  </span></li>
<li class="alt"><span>67 |       2  </span></li>
<li class=""><span>86 |       1  </span></li>
<li class="alt"><span>85 |       6  </span></li>
<li class=""><span>98 |       2  </span></li>
<li class="alt"><span>86 |       6  </span></li>
<li class=""><span>67 |       7 </span></li>
</ol>

データはすべて data という名前の配列に格納されます。これは通常、mysql_fetch_assoc() などのループを通じてデータベースから取得された結果です (実際、この関数は mysql_fetch_assoc() 関数と同じと考えることができます。具体的な違いについては、次のキーの違いを参照してください。 PHP マニュアルを参照してください)。

<ol class="dp-xml">
<li class="alt"><span><span>$data[] = array('volume' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 67, 'edition' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 2);  </span></span></li>
<li class="">
<span>$data[] = array('volume' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 86, 'edition' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 1);  </span>
</li>
<li class="alt">
<span>$data[] = array('volume' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 85, 'edition' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 6);  </span>
</li>
<li class="">
<span>$data[] = array('volume' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 98, 'edition' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 2);  </span>
</li>
<li class="alt">
<span>$data[] = array('volume' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 86, 'edition' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 6);  </span>
</li>
<li class="">
<span>$data[] = array('volume' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 67, 'edition' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 7); </span>
</li>
</ol>

この例では、ボリュームは降順でソートされ、エディションは昇順でソートされます。

これで行を含む配列ができましたが、array_multisort() には列を含む配列が必要なので、次のコードを使用して列を取得し、並べ替えます。

<ol class="dp-xml">
<li class="alt"><span><span>// 取得列的列表  </span></span></li>
<li class="">
<span>foreach ($data as $</span><span class="attribute"><font color="#ff0000">key</font></span><span> =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> $row) {  </span>
</li>
<li class="alt"><span>$volume[$key]  = $row['volume'];  </span></li>
<li class=""><span>$edition[$key] = $row['edition'];  </span></li>
<li class="alt"><span>}  </span></li>
<li class=""><span> </span></li>
<li class="alt"><span>// 将数据根据 volume 降序排列,根据 edition 升序排列  </span></li>
<li class=""><span>// 把 $data 作为最后一个参数,以通用键排序  </span></li>
<li class="alt"><span>array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);  </span></li>
</ol>

PHP 配列はマージされ、ソートされ、結果は次のようになります:

<ol class="dp-xml">
<li class="alt"><span><span>volume | edition  </span></span></li>
<li class=""><span>-------+--------  </span></li>
<li class="alt"><span>98 |       2  </span></li>
<li class=""><span>86 |       1  </span></li>
<li class="alt"><span>86 |       6  </span></li>
<li class=""><span>85 |       6  </span></li>
<li class="alt"><span>67 |       2  </span></li>
<li class=""><span>67 |       7 </span></li>
</ol>

実際、ソート時に使用できるメソッドは多数あります。例えば、arsort()、asort()、ksort() などです。 PHP の配列 array )、krsort()、natsort()、natcasesort()、rsort()、usort()、array_multisort()、および uksort()。


www.bkjia.com本当http://www.bkjia.com/PHPjc/446497.html技術記事 PHP 配列を使用する場合、PHP 配列のマージで問題が発生する可能性があります。この記事では、PHP 配列のマージと PHP 配列のソートについて説明します。 PHP 配列のソートは、実際には PHP 配列をソートしています...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。