ホームページ  >  記事  >  バックエンド開発  >  文字列の長さに応じて PHP 配列を並べ替える_PHP チュートリアル

文字列の長さに応じて PHP 配列を並べ替える_PHP チュートリアル

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

のニーズを分析したい場合: 検索結果の関連性を高くします (キーワードの割合が大きい結果が最初にランク付けされます)。たとえば、「レッド」というキーワードで検索すると、アニメ「レッド」の方が「赤ずきん」よりもキーワード比率が高いため、上位に表示されます。したがって、PHP 配列の場合、内容はすべて文字列であるため、文字列の長さに応じて再度並べ替える必要があるという特別な要件が発生しました。 PHP が提供する配列関数は英語順でしかソートできないため、Google で検索したところ、PHP のカスタム ソート関数 usort を使用するという解決策が見つかりました。

<ol class="dp-xml"><li class="alt"><span><span>bool usort ( array & $array ,<br> callback $cmp_function )  </span></span></li></ol>

実際、PHP 配列を文字列の長さで並べ替える方法は、以前のコンピューター コースで学習したバブル ソート方法に似ています。1 つ目は並べ替える配列、2 つ目はコールバック関数です。並べ替えた状態です。 Usort は再帰と同等であり、並べ替えの目的を達成するために、条件の戻り値に基づいて 2 つの隣接する配列 ($a、$b など) を交換するかどうかを決定します。バブルソート法に基づく場合、この条件は $a > $b です。したがって、文字列の長さに基づく場合は、strlen($a)-$strlen($b) の形式になります。独自のコールバック関数を作成することで、あらゆる種類の奇妙な並べ替えを完了できます。すると、CoCo の現在のコードは次のようになります。

<ol class="dp-xml">
<li class="alt"><span><span>$</span><span class="attribute">aS</span><span> = </span><span class="attribute-value">array</span><span>('aaa', 'aa', 'aaaa', 'aaaaa');   </span></span></li>
<li>
<span>$</span><span class="attribute">F</span><span> = </span><span class="attribute-value">create_function</span><span>('$a, $b', <br>'return(strLen($a) </span><span class="tag">></span><span> strLen($b))');   </span>
</li>
<li class="alt"><span>usort($aS, $F);  </span></li>
</ol>

上記で紹介した文字列の長さで PHP 配列をソートする実装方法を通じて、誰もがこのテクニックを完全にマスターできることを願っています。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446223.html技術記事需要分析を実行する場合: 関連性の高い結果 (キーワードの割合が多い結果が最初にランクされる) を検索結果に表示します。例えば、「红」というキーワードで検索すると、アニメ「Red」は…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。