首页 > 解决方案 > PHP为什么来自两个不同字符串的两个相同值不相等

问题描述

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

$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

标签: php

解决方案


正如您从var_dump输出中看到的那样,您正在比较的项目是不同的长度。其中有一个空格,可能还有一个隐藏字符$cat

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

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

推荐阅读