PHP为什么来自两个不同字符串的两个相同值不相等

PHP为什么来自两个不同字符串的两个相同值不相等,php,Php,为什么这两个字符串不相等? 我试图获得相同的名称以便创建一个文件,但是我无法获得两个彼此相等的字符串,即使我认为两个字符串具有相同的值。 我上传了var_转储输出 知道怎么修吗 $selectCategory = scandir($_SERVER['DOCUMENT_ROOT'].'/database/'); $cat = explode('.',$category); print_r($cat); print_r($selectCategory); if($cat

为什么这两个字符串不相等? 我试图获得相同的名称以便创建一个文件,但是我无法获得两个彼此相等的字符串,即使我认为两个字符串具有相同的值。 我上传了var_转储输出 知道怎么修吗

$selectCategory = scandir($_SERVER['DOCUMENT_ROOT'].'/database/');

$cat = explode('.',$category);

    print_r($cat);
    print_r($selectCategory);

    if($cat[0] == $selectCategory[2]){
        echo " true";
    }
    else{
        echo "no";
    }

output:
Array ( [0] => bus [1] => php ) 
Array ( [0] => . [1] => .. [2] => bus [3] => fruit )
 no

This is var_dump output
array(2) { [0]=> string(5) " bus" [1]=> string(3) "php" } 
array(4) { [0]=> string(1) "." [1]=> string(2) ".." [2]=> string(3) "bus" [3]=> string(5) "fruit" } 
no

var\u dump
输出中可以看到,您正在比较的项目长度不同。
$cat
中有一个空格,可能还有一个隐藏字符:

要修剪所有空格和其他一些字符,请使用以下命令:

$cat = array_map('trim', $cat);
$selectCategory = array_map('trim', $selectCategory);

使用
var\u dump
而不是
print\u r
并显示结果。我更新了var\u dump输出,看起来总线有$cat的字符串(5),知道如何修复它吗?非常感谢。因此,在第一个数组中,0索引两端都有一个空格a(不是说它有5个字符长),所以字符串不一样。也许考虑使用。完美地解决了我的问题,非常感谢!