если еще условие, не работающее со множеством, оценивает в php

я пришел к этому странному решению.

я получаю ценности от множества и пытаюсь сравнить его, но не работа.

Код 1

<?php
echo $data->item[0]['promocode'].'
'; echo $data->item[1]['promocode']; ?>

Произведите 1

inhouse
inhouse 

Теперь позволяет попытке с тем, если еще условие, если обе ценности - то же самое или нет Код 2

<?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 

Очень странный

я не получаю его, что я делаю неправильно.

позволяет попытке выше exaple с определением переменных Код 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 

Таким образом, мой вопрос состоит в том, почему это происходит?

у меня есть множество элементов, и я хочу согласовать предыдущую стоимость с текущей стоимостью, если попытка тогда делает что-то.

спасибо в течение вашего времени.

4
Попробуйте === вместо == .
добавлено автор web-nomad, источник
Попробуйте === вместо == .
добавлено автор web-nomad, источник
Попробуйте === вместо == .
добавлено автор web-nomad, источник
Действительно, кажется, есть тянущийся пробел, как замечено здесь i49.tinypic.com/1ffmrr.jpg
добавлено автор asprin, источник
Действительно, кажется, есть тянущийся пробел, как замечено здесь i49.tinypic.com/1ffmrr.jpg
добавлено автор asprin, источник
Действительно, кажется, есть тянущийся пробел, как замечено здесь i49.tinypic.com/1ffmrr.jpg
добавлено автор asprin, источник
Isn' t === еще более сильный и с большим количеством ограничений, чем == , поэтому то, когда == даст ложный, === , конечно, даст ложный, также? Просто прося видеть, понял ли я их правильно.
добавлено автор Faery, источник
Isn' t === еще более сильный и с большим количеством ограничений, чем == , поэтому то, когда == даст ложный, === , конечно, даст ложный, также? Просто прося видеть, понял ли я их правильно.
добавлено автор Faery, источник
Isn' t === еще более сильный и с большим количеством ограничений, чем == , поэтому то, когда == даст ложный, === , конечно, даст ложный, также? Просто прося видеть, понял ли я их правильно.
добавлено автор Faery, источник
Намек: Что является результатом если (strlen ($data0=$data-> пункт [0] [' promocode']) == strlen ($data0=$data-> пункт [1] [' promocode']))
добавлено автор Burhan Khalid, источник
Намек: Что является результатом если (strlen ($data0=$data-> пункт [0] [' promocode']) == strlen ($data0=$data-> пункт [1] [' promocode']))
добавлено автор Burhan Khalid, источник

7 ответы

Принятие обоих записей является последовательностями (как показано в вашем первом примере кода), мое предположение было бы то, что у ваших записей есть неравное продвижение и/или перемещение пробела. Попытайтесь нормализовать их сначала, например,

if (trim($data->item[0]['promocode']) == trim($data->item[1]['promocode']))

Чтобы видеть, что продолжается, попытайтесь изменить свой первый пример к

<?php
    printf('
"%s"%s"%s"
', $data->item[0]['promocode'], PHP_EOL, $data->item[1]['promocode']); ?>
6
добавлено
урежьте хорошо работал, человек спасибо.,
добавлено автор AMB, источник

Принятие обоих записей является последовательностями (как показано в вашем первом примере кода), мое предположение было бы то, что у ваших записей есть неравное продвижение и/или перемещение пробела. Попытайтесь нормализовать их сначала, например,

if (trim($data->item[0]['promocode']) == trim($data->item[1]['promocode']))

Чтобы видеть, что продолжается, попытайтесь изменить свой первый пример к

<?php
    printf('
"%s"%s"%s"
', $data->item[0]['promocode'], PHP_EOL, $data->item[1]['promocode']); ?>
6
добавлено
урежьте хорошо работал, человек спасибо.,
добавлено автор AMB, источник

Попытайтесь использовать неприглашаемый на однотипные роли условный оператор ===, чтобы видеть, являются ли они тем же самым типом. Или для отладки perposes показывают тип переменной, чтобы удостовериться, что у вас случайно нет некоторых Несуществующих объектов или других странных типов данных.

if($data0 !== $data1) echo gettype($data0).' !== '.gettype($data1);

Это должно помочь вам узнать то, что вы на самом деле сравниваете. Другой выбор состоит в том, чтобы использовать var_dump ($data); , чтобы на самом деле показать переменные все вместе. Посмотрите, есть ли некоторые несоответствия в типах данных. Это должно помочь вам узнать, населяет ли ваш объект на самом деле правильно.

1
добавлено

Попробуйте как это

<?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']);
0
добавлено
Нет, strcmp () даст вам различие между двумя последовательностями как число (0 для равного). Используя его, чтобы определить равенство не отличается, чем $a == $b
добавлено автор Phil, источник
Как указано уже, strcmp ($str1, $str2) == 0 не собирается приводить к различному результату, чем $str1 == $str2
добавлено автор Phil, источник
идентичный оператор только собирается сделать сравнение более вероятно, чтобы потерпеть неудачу. strcmp() не собирается приводить к любому различному результату, чем ==
добавлено автор Phil, источник
Я думаю, что strcmp более определяется для последовательности, функционирующей право..?? ваша отделка может удалить места, и могут другие, но корреспондент попросил comparission...
добавлено автор Gautam3164, источник
Yah тогда, который можно использовать, если (strcmp (str1, str2) == 0) тогда они равны иначе не.... даже, это определяет ' cases' также
добавлено автор Gautam3164, источник
может downvoted человек говорить мне причину того, чтобы сделать так..??
добавлено автор Gautam3164, источник

Попробуйте как это

<?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']);
0
добавлено
Как указано уже, strcmp ($str1, $str2) == 0 не собирается приводить к различному результату, чем $str1 == $str2
добавлено автор Phil, источник
Нет, strcmp () даст вам различие между двумя последовательностями как число (0 для равного). Используя его, чтобы определить равенство не отличается, чем $a == $b
добавлено автор Phil, источник
идентичный оператор только собирается сделать сравнение более вероятно, чтобы потерпеть неудачу. strcmp() не собирается приводить к любому различному результату, чем ==
добавлено автор Phil, источник
может downvoted человек говорить мне причину того, чтобы сделать так..??
добавлено автор Gautam3164, источник
Я думаю, что strcmp более определяется для последовательности, функционирующей право..?? ваша отделка может удалить места, и могут другие, но корреспондент попросил comparission...
добавлено автор Gautam3164, источник
Yah тогда, который можно использовать, если (strcmp (str1, str2) == 0) тогда они равны иначе не.... даже, это определяет ' cases' также
добавлено автор Gautam3164, источник

Попробуйте как это

<?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']);
0
добавлено
Как указано уже, strcmp ($str1, $str2) == 0 не собирается приводить к различному результату, чем $str1 == $str2
добавлено автор Phil, источник
Нет, strcmp () даст вам различие между двумя последовательностями как число (0 для равного). Используя его, чтобы определить равенство не отличается, чем $a == $b
добавлено автор Phil, источник
идентичный оператор только собирается сделать сравнение более вероятно, чтобы потерпеть неудачу. strcmp() не собирается приводить к любому различному результату, чем ==
добавлено автор Phil, источник
Я думаю, что strcmp более определяется для последовательности, функционирующей право..?? ваша отделка может удалить места, и могут другие, но корреспондент попросил comparission...
добавлено автор Gautam3164, источник
Yah тогда, который можно использовать, если (strcmp (str1, str2) == 0) тогда они равны иначе не.... даже, это определяет ' cases' также
добавлено автор Gautam3164, источник
может downvoted человек говорить мне причину того, чтобы сделать так..??
добавлено автор Gautam3164, источник

Я использую 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']);
}
?>
0
добавлено
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp