除了其他答案,来自
if (in_array("Beautiful People",$thisWeek) && $key== "Beautiful People")
收件人
if (in_array("Beautiful People",$thisWeek) && $value == "Beautiful People")
是多余的,因为您正在循环$thisWeek
。
如果该语句in_array("Beautiful People",$thisWeek)
为假,则该$value == "Beautiful People"
将永远为真。
您的条件可以简化为:
if ($value == "Beautiful People")
但是,您的任务是查找$value
是"Beautiful People"
还是"Higher Love"
您可以这样写:
if ($value == "Beautiful People" || $value == "Higher Love")
或:
// An array containing the values you are looking for
// |
// Current value + +-----------------+-----------------+
// | | |
// v v v
if (in_array($value,[ "Beautiful People","Higher Love" ]))
,
您的代码无法正常运行,因为$key
是当前索引,并且您正在将其与值进行比较。因此,您应该更改:
if (in_array("Beautiful People",$thisWeek) && $key == "Beautiful People")
收件人:
if (in_array("Beautiful People",$thisWeek) && $value == "Beautiful People")
,
在测试中...
if (in_array("Beautiful People",$thisWeek) && $key== "Beautiful People") {
$key
是行的索引,而不是值,因此将其更改为
if (in_array("Beautiful People",$thisWeek) && $value == "Beautiful People") {
关于为什么给出奇怪结果的原因,请阅读Comparing String to Integer gives strange results
,
您应将$key
更改为$value
:
$thisWeek = array(
'Dance Monkey','Circles','Beautiful People','Blue Day','Higher Love'
);
foreach ($thisWeek as $key => $value) {
if (in_array("Beautiful People",$thisWeek) && ($value == "Beautiful People")) {
echo "$key => $value - new <br>";
} else {
echo "$key => $value <br>";
}
}
第一个条件等于第二个条件,因此您可以减少为:
if (in_array("Beautiful People",$thisWeek))
本文链接:https://www.f2er.com/3166106.html