首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果有其他条件,则不使用php中的数组值。

如果有其他条件,则不使用php中的数组值。
EN

Stack Overflow用户
提问于 2013-01-29 05:45:03
回答 4查看 2.2K关注 0票数 4

我谈到了这个奇怪的问题。

我正在从数组中获得值,并试图比较它,但它不起作用。

代码-1

代码语言:javascript
复制
<?php
echo $data->item[0]['promocode'].'<br>';
echo $data->item[1]['promocode']; 
?>

产出-1

代码语言:javascript
复制
inhouse
inhouse 

现在,如果这两个值都是相同或不相同的,那么让我们尝试使用if else条件。

代码语言:javascript
复制
<?php
if(($data->item[0]['promocode']) == ($data->item[1]['promocode'])){
echo "both values are same";
} else {
echo "both values are NOT same";
}?>

产出-2

代码语言:javascript
复制
both values are NOT same 

非常奇怪的

我不明白我做错了什么。

让我们通过指定变量Code-3来尝试上面的示例。

代码语言:javascript
复制
<?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

代码语言:javascript
复制
both values are NOT same 

我现在正在拔头发。

现在变量中的硬编码值

代码-4

代码语言:javascript
复制
<?
$data0='inhouse';
$data1='inhouse';
if($data0 == $data1){
echo "both values are same";
} else {
echo "both values are NOT same";
}?>

产出-4

代码语言:javascript
复制
both values are same 

所以我的问题是为什么会发生这种事?

我有一个元素数组,如果尝试做一些事情,我想用当前值检查以前的值。

耽误您时间,实在对不起。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-29 05:51:49

假设两个条目都是字符串(如您的第一个代码示例所示),我猜您的条目具有不相等的前导和/或尾随空格。试着先使它们正常化(如

代码语言:javascript
复制
if (trim($data->item[0]['promocode']) == trim($data->item[1]['promocode']))

要了解发生了什么,请将第一个示例修改为

代码语言:javascript
复制
<?php
    printf('<pre>"%s"%s"%s"</pre>',
        $data->item[0]['promocode'],
        PHP_EOL,
        $data->item[1]['promocode']);
?>
票数 6
EN

Stack Overflow用户

发布于 2013-01-29 05:49:56

试着像这样

代码语言:javascript
复制
<?php
   if(($data->item[0]['promocode']) === ($data->item[1]['promocode'])){
     echo "both values are same";
   } else {
     echo "both values are NOT same";
   }
?>

或者你可以用

代码语言:javascript
复制
strcmp($data->item[0]['promocode'],$data->item[1]['promocode']);
票数 0
EN

Stack Overflow用户

发布于 2013-01-29 06:12:51

我也使用strlen($var)进行调试.

代码语言:javascript
复制
<?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']);
}
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14576404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档