数値インデックス配列:
bool usort( array &$array, callback $cmp_function )
usort 関数は、指定された配列 (パラメーター 1) を指定された方法 (パラメーター 2) でソートします。
多次元配列をソートしたい場合、多次元配列の各要素は配列型ですが、2 つの配列のサイズを比較するにはどうすればよいでしょうか?これはユーザーがカスタマイズする必要があります (各配列の最初の要素に基づいて比較するかどうか)。
コードをコピーします コードは次のとおりです:
//多次元配列を定義します
$a = array(
array("sky", "blue"),
array("apple", "red"),
array("tree", "green"));
//カスタマイズされた配列比較関数。配列の 2 番目の要素に基づいて比較します。
function my_compare($a, $b) {
if ($a[1] < $b[1])
return -1;
else if ($a[1] == $b[1])
return 0;
else
return 1;
//ソート
usort($a, 'my_compare');
foreach($a as $elem) {
echo "$elem[0] : $elem[1]
";
}
?>
結果は次のとおりです:
コードをコピーします コードは次のとおりです:
sky : blue
tree : 緑
リンゴ : 赤
連想配列:
bool uasort(array &$array, callback $cmp_function)
bool uksort(array &$array, callback $cmp_function)
uasort、uksort の使い方は usort と同じです。ここで、uasort() は値でソートする連想配列に適しており、uksort() は連想配列のキーでソートします。
コードをコピー コードは次のとおりです:
$a = array(
'Sunday' => array(0,'7th'),
'Friday' => array(5 ,'5th'),
' Tuesday'=> array(2,'2nd'));
function my_compare($a, $b) {
if ($a[1] < $b) [1] )
return -1;
else if ($a[1] == $b[1])
return 0;
else
return 1;
// の値の 2 番目の要素による$a 配列 (7 番目、5 番目、2 番目) を並べ替えます
uasort($a, 'my_compare');
foreach($a as $key => $value) {
echo "$key : $value[0] $value[1]
";
}
//$a 配列のキーの 2 番目の文字 (r, u, u) でソートします
uksort($a, 'my_compare');
foreach($a as $key => $value) {
echo "$key : $value[0] $value[1]
";
?>は:
火曜日 : 2 2日
金曜日 : 5 5日
日曜日 : 0 7日
金曜日 : 5 5日 日曜日 : 0 7日
火曜日 : 2 2日
http://www.bkjia.com/PHPjc/322116.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/322116.html技術記事数値インデックス配列: bool usort( array lt;?php //多次元配列を定義 $a = array( array("sky", "blue"), array("apple", "red"), array("tree", "green")); // カスタム配列比較関数...