- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPのstrcmp関数について)
PHPのstrcmp関数について
このQ&Aのポイント
- PHPのstrcmp関数は、文字列をバイナリセーフに比較するための関数です。
- str1がstr2よりも小さければ負の値、大きければ正の値、等しければ0を返します。
- アルファベット順にソートしたい場合には、strcmp関数ではなくsort関数を使うことが一般的です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> 1 このstr1がstr2より大きいとはどういうことでしょうか? 辞書式順序で後の方に来る文字列の方が大きいです。 よく分からないなら、英和辞書で適当な単語を2つ探してください。 後のページに書かれている単語の方が「大きい」です。 > 2 実際に動きを確認するためにstrcmp関数を他のPHPのビルトイン関数で実現できないのでしょうか? phpは数回くらいしかさわったこと無いけど、 たぶんこれでいいんじゃないかな。 function my_strcmp($a, $b) { for($i=0;;$i++){ $a_char = ord($a[$i]); #文字列$aの$i番目文字の文字コード $b_char = ord($b[$i]); #文字列$bの$i番目文字の文字コード if( $a_char != $b_char ) { break; } if( $a_char == 0 ) { #文字列末尾まで等しいなら、文字列全体が等しい return 0; } } if ($a_char>$b_char){return +1;} elseif($a_char<$b_char){return -1;} else {return 0;} } > 3 アルファベット順にソートしたいとき標準のsort関数を使わずに > 他のPHPの標準関数の組み合わせでアルファベット順に並び替える関数はつくれないのか? 比較関数を指定できるusortを使って $a = array("abc","abcd","aaaa","bbbb"); usort($a,"strcmp");