PHP字符串比较不按预期工作

时间:2014-03-17 12:05:43

标签: php strcmp

我有一个数组,其中一些值的文本值为“unknown”。

如果我使用strcmp,我没有按预期得到结果。

例如:

echo $array[8];

输出“未知”一词。

strcmp($array[8],"unknown");

输出-104。

strcmp(trim($array[8]),"unknown");

输出-57。

我不明白为什么这些字符串不相等。我只是想获得一个0值,所以我可以用循环过滤出“未知”的数组值。

2 个答案:

答案 0 :(得分:3)

你错误地修剪了它..

正确的方式......

<?php
$arr[8]='unknown';
echo strcmp(trim($arr[8]),"unknown"); //"prints" 0

Demo

答案 1 :(得分:1)

如果要检查字符串是否相等,请使用===

if(trim($array[8]) === "unknown"){ ..

您甚至可以为过滤方法编写自己的回调:

$array_filtered = array_filter($array, function($value){
    return trim($value) !== "unknown";
});