我谈到了这个奇怪的问题。
我正在从数组中获得值,并试图比较它,但它不起作用。
代码-1
<?php
echo $data->item[0]['promocode'].'<br>';
echo $data->item[1]['promocode'];
?>产出-1
inhouse
inhouse 现在,如果这两个值都是相同或不相同的,那么让我们尝试使用if else条件。
<?php
if(($data->item[0]['promocode']) == ($data->item[1]['promocode'])){
echo "both values are same";
} else {
echo "both values are NOT same";
}?>产出-2
both values are NOT same 非常奇怪的
我不明白我做错了什么。
让我们通过指定变量Code-3来尝试上面的示例。
<?php
$data0=$data->item[0]['promocode'];
$data1=$data->item[1]['promocode'];
if($data0 == $data1){
echo "both values are same";
} else {
echo "both values are NOT same";
}?>产出-3
both values are NOT same 我现在正在拔头发。
现在变量中的硬编码值
代码-4
<?
$data0='inhouse';
$data1='inhouse';
if($data0 == $data1){
echo "both values are same";
} else {
echo "both values are NOT same";
}?>产出-4
both values are same 所以我的问题是为什么会发生这种事?
我有一个元素数组,如果尝试做一些事情,我想用当前值检查以前的值。
耽误您时间,实在对不起。
发布于 2013-01-29 05:51:49
假设两个条目都是字符串(如您的第一个代码示例所示),我猜您的条目具有不相等的前导和/或尾随空格。试着先使它们正常化(如
if (trim($data->item[0]['promocode']) == trim($data->item[1]['promocode']))要了解发生了什么,请将第一个示例修改为
<?php
printf('<pre>"%s"%s"%s"</pre>',
$data->item[0]['promocode'],
PHP_EOL,
$data->item[1]['promocode']);
?>发布于 2013-01-29 05:49:56
试着像这样
<?php
if(($data->item[0]['promocode']) === ($data->item[1]['promocode'])){
echo "both values are same";
} else {
echo "both values are NOT same";
}
?>或者你可以用
strcmp($data->item[0]['promocode'],$data->item[1]['promocode']);发布于 2013-01-29 06:12:51
我也使用strlen($var)进行调试.
<?php
if( strlen($data->item[0]['promocode']) == strlen($data->item[1]['promocode']) ){
if(($data->item[0]['promocode']) == ($data->item[1]['promocode'])){
echo "both values are same";
}
else {
echo "both values are NOT same";
}
}
else{
echo 'ther are different because
strlen($data->item[0]["promocode"]='.strlen($data->item[0]['promocode']).' and
strlen($data->item[1][|promocode"]) = '. strlen($data->item[1]['promocode']);
}
?>https://stackoverflow.com/questions/14576404
复制相似问题