我正在使用此代码来比较方法中的字符串值,这非常有效。但是对于某些值,它会给出错误的值,例如低于值:
代码:
$string1 = "65";
$string2 = "5-fold";
$result = strcasecmp($string1, $string2);
switch ($result) {
case -1: print "65 comes before 5-fold"; break;
case 0: print "65 and 5-fold are the same"; break;
case 1: print "65 comes after 5-fold"; break;
}
输出:
65 comes after 5-fold
我将这个代码用于排序数组列表,它们对它们进行排序(65之前是5倍)。可能是这个输出,因为“ - ”或其他我不知道的东西。你对此有任何想法......
下面的代码对多维数组进行排序:
foreach($index_terms as $c=>$key) {
$sort_id[] = $key['id'];
$sort_term[] = $key['term'];
$sort_freq[] = $key['freq'];
}
array_multisort($sort_term, SORT_ASC, $index_terms);
答案 0 :(得分:1)
您正在将65
与5-fold
进行比较。如果65
小于5-fold
,则返回-1;如果65
大于5-fold
,则返回1。
65大于5倍......我没有看到问题?
你希望65岁之前的5倍应该是什么?
答案 1 :(得分:0)
代码:
<?php
$string1 = "65";
$string2 = "5-fold";
$result = strcasecmp($string1, $string2);
echo $result;
?>
输出
1
提示:您的输出没有任何问题。 1
表示第二个操作数更大,-1
表示第一个操作数更大。
答案 2 :(得分:0)
尝试使用Intval
strcasecmp比较字符串的二进制值
$string1 = intVal("65");
$string2 = intVal("5-fold");
$result = strcasecmp($string1, $string2);
switch ($result) {
case -1: print "65 comes before 5-fold"; break;
case 0: print "65 and 5-fold are the same"; break;
case 1: print "65 comes after 5-fold"; break; }