PHP-使用==比较运算符无法获得预期结果

PHP-使用==比较运算符无法获得预期结果,php,comparison,string-comparison,Php,Comparison,String Comparison,使用此代码: if($foo['bar'] == $baz) { $results[] = $foo; } 我从未完成作业$results[]=$foo(具有特定值) 现在,如果我这样做(使用相同的特定值): 我得到一个0的结果,表明字符串实际上是相等的。所以为什么我不能达到$results[]=$foo 如果两个strcmp等于0,$foo['bar']==$baz不应该是真的吗?我错过了什么 顺便说一下,只有一个比较失败。使用相同的if语句进行其他比较也可以 例如: 当$foo[

使用此代码:

if($foo['bar'] == $baz) {
    $results[] = $foo;
}
我从未完成作业
$results[]=$foo(具有特定值)

现在,如果我这样做(使用相同的特定值):

我得到一个
0
的结果,表明字符串实际上是相等的。所以为什么我不能达到
$results[]=$foo

如果两个strcmp等于0,$foo['bar']==$baz不应该是真的吗?我错过了什么


顺便说一下,只有一个比较失败。使用相同的if语句进行其他比较也可以

例如:

当$foo['bar']=='meat'和$baz=='meat'时,我得到$results['meat']


但是当$foo['bar']=='meat sauce'和$baz=='meat sauce'时,我会得到$results[]

观察到的行为没有意义,所以一定有一个隐藏的陷阱。让我们从
trim
似乎能让它工作这一事实开始


您是否使用了
var\u dump
来验证
$foo['bar']
$baz
是否真的具有相同的值?

如果您有两个数组,例如A和B,并且您希望将数组B分配给A,则执行以下操作:

$A = $B;
如果只想分配一个元素:

$A[] = $B[5]; // ether by index or key
在您尝试将整个数组分配到数组中的一个元素的情况下,请尝试以下操作:

$results[] = $foo['bar'];
如果要分配整个阵列,请执行以下操作:

$results['key1'] = $foo[];

结果数组中的每个键都将保留数组。

您能否发布与此相关的代码以及可能发送的实际值,以便对其进行测试?thnx。@Deacdenseprado-弄明白了。我只是在测试中包含了trim(),但没有包含在遇到问题的实际代码中,叹气。实际上,我正试图这样分配整个数组,而不仅仅是一个值。我正在迭代一个多维数组,并根据每个子数组中是否存在特定值来构建一个新数组。这是过滤一些返回结果的函数的一部分。谢谢Jon。我在测试中包含了trim(),但没有包含在出现问题的代码中。当我看到var_转储时,我看到一个结果是一个字符变长了,然后说“见鬼,我修剪了那个…嗯,哦”。谢谢你的帮助。
$results['key1'] = $foo[];