我有一个数组,其中一些值的文本值为“unknown”。
如果我使用strcmp,我没有按预期得到结果。
例如:
echo $array[8];
输出“未知”一词。
strcmp($array[8],"unknown");
输出-104。
strcmp(trim($array[8]),"unknown");
输出-57。
我不明白为什么这些字符串不相等。我只是想获得一个0值,所以我可以用循环过滤出“未知”的数组值。
答案 0 :(得分:3)
你错误地修剪了它..
正确的方式......
<?php
$arr[8]='unknown';
echo strcmp(trim($arr[8]),"unknown"); //"prints" 0
答案 1 :(得分:1)
如果要检查字符串是否相等,请使用===
if(trim($array[8]) === "unknown"){ ..
您甚至可以为过滤方法编写自己的回调:
$array_filtered = array_filter($array, function($value){
return trim($value) !== "unknown";
});