
http://www.php.net/manual/ja/function.usort.php
にusortの例として下記がありますが、それについて質問です。
-------------例文-------------
<?php
function cmp($a, $b)
{
return strcmp($a["fruit"], $b["fruit"]);
}
$fruits[0]["fruit"] = "lemons";
$fruits[1]["fruit"] = "apples";
$fruits[2]["fruit"] = "grapes";
usort($fruits, "cmp");
while (list($key, $value) = each($fruits)) {
echo "\$fruits[$key]: " . $value["fruit"] . "\n";
}
?>
-------------結果-------------
$fruits[0]: apples
$fruits[1]: grapes
$fruits[2]: lemons
上の例は、usortで$fruitsという配列をソートしています。
そのとき、cmpという関数を条件にしている、というのは分かりますが、
なぜcmpを条件にすることでアルファベットの昇順になるのでしょうか?
strcmp($a["fruit"], $b["fruit"]);にたとえばlemonsとかapplesが入って
strcmpによって比較がされて、結果として1や-1が返されて
その結果、たとえばusort($fruits, "-1")や、usort($fruits, "1")
となったとします。それがなぜ結果として昇順になるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
String だと「 ByRef引数の型が...
-
$_SESSIONに二次元配列を使える...
-
チェックボックス複数選択 mys...
-
配列を回すとき、最後の要素だ...
-
ネストが深い時のforeachはどう...
-
【PHP】配列内のある値以上をカ...
-
Smartyのテンプレートからjavas...
-
PHPでgrepする件について
-
Array Array と表示される
-
すみません質問です
-
漢字のソートについて
-
演算子について
-
【PHP】配列の最後の要素の...
-
PHPの基礎知識でお伺いします
-
csvの内容を行単位で削除したい
-
マッチング処理(1:N)
-
特定の文からメールアドレスの...
-
再帰関数を用いて配列の合計を...
-
C言語の配列をPush(追加)する...
-
エラーメッセージ(無効な間接...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
$_SESSIONに二次元配列を使える...
-
String だと「 ByRef引数の型が...
-
配列をループでたくさん宣言し...
-
file_existsでファイル名の部分...
-
配列一致(要素順番は違うが内容...
-
foreachで多次元配列にしたくな...
-
配列を回すとき、最後の要素だ...
-
正規表現についての質問
-
増える数字を配列に全て格納し...
-
MySQL接続・カテゴリわけ
-
CakePHPのfindの取得件数は?
-
すべての変数の値をリセットする
-
PHPで配列をPOSTデータで送った...
-
ネストが深い時のforeachはどう...
-
PHPにてクラスを配列にすること...
-
配列の値の更新方法について
-
foreachのなかで次のキーを参照...
-
【PHP】配列内のある値以上をカ...
-
配列に入っている数を調べる方...
-
array_push関数について
おすすめ情報