PHP: 値の長さによる配列の並べ替えの最適化
可変長の値の配列を操作する場合、要素の長さによって配列を並べ替えることができます。データを効率的に整理するために重要です。この記事では、この一般的な問題に対する実用的な解決策を示します。
解決策:
php.net Web サイトでは、カスタム コンパレータ関数と組み合わせて usort 関数を使用する解決策を提供しています。 。カスタム関数 sortByLength は、2 つの配列要素の長さを比較し、その差を返します。比較で降順を指定すると、配列の並べ替え時に最も長い配列値が最初に表示されます。
<code class="php">function sortByLength($a,$b){ return strlen($b)-strlen($a); } usort($array,'sortByLength');</code>
このメソッドは不安定な並べ替えを使用することに注意してください。つまり、等しい要素は並べ替え中に相対的な順序が変わる可能性があります。
代わりに、uasort 関数を使用して元のインデックスを維持することもできます。
<code class="php">uasort($array, 'sortByLength');</code>
例:
この解決策を説明するには、次のようにします。次の配列を考えてみましょう:
<code class="php">$array = array("bbbbb", "dog", "cat", "aaa", "aaaa");</code>
結果の並べ替え:
sortByLength 関数を使用すると、並べ替えられた配列は次のように表示されます:
<code class="php">[ 0 => "bbbbb", 1 => "aaaa", 2 => "aaa", 3 => "cat", 4 => "dog" ]</code>
一方、同じ長さの要素の元の順序は保持されます。
以上がPHP 配列を値の長さで並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。