in_array 在 if 语句中使用内爆时失败
in_array fails when using implode in if statement
这个尝试是为了创建一个搜索条件,最终将处理输出以根据匹配的递增顺序显示结果
"PHP implode function in if and foreach condition [closed]" 是一个不同的问题!
为什么下面的代码会失败?
$terms = array("HELLO", "HI", "HOWDY");
$row = array("HELLO", "HI", "Hey");
$chkcond = "in_array('".implode("',$"."row".")"." && in_array"."('",$terms)."',$"."row)";
echo "$chkcond<br/><br/>";
if ($chkcond) {
echo "All Found in Array !<br>";}else{echo "Not Found !<br/>";
}
回显结果为
in_array('HELLO',$row) && in_array('HI',$row) && in_array('HOWDY',$row)
并且if条件输出"All Found in Array !"
当 if
条件表明所有三个项都必须在行数组中才能成为“All Found in Array
”,那么为什么在“[=17] 时返回 True
=]" 行数组中不存在?
只需使用 array_diff
http://php.net/array_diff
<?php
$terms=array("HELLO","HI","HOWDY");
$row=array("HELLO","HI","Hey");
$diff = array_diff($terms, $row);
if (0 === count($diff)){echo "All terms Found in Array row !<br>";}else{echo "Not all terms Found in Array row !<br>";}
$terms=array("HELLO","HI","HOWDY");
$row=array("HELLO","HI","Hey","HOWDY");
$diff = array_diff($terms, $row);
if (0 === count($diff)){echo "All terms Found in Array row !<br>";}else{echo "Not all terms Found in Array row !<br>";}
你可以使用 array_diff
类似于:
<?php
$terms=array("HELLO","HI","HOWDY");
$row=array("HELLO","HI","Hey");
$chkcond=array_diff($terms, $row);
var_dump($chkcond);
if(empty($chkcond)) {
echo "All Found in Array !<br>";
} else {
echo "Not Found !<br>";
}
?>
不确定您在尝试什么,但您可以使用 array_diff。
$terms = array("HELLO","HI","HOWDY");
$row = array("HELLO","HI","Hey");
$differences = array_diff($terms, $row);
if ($differences) {
echo "All Found in array";
} else {
"Not Found !<br>";
}
如果您想坚持使用 in_array
,您需要循环您的条款:
<?php
$terms=array("HELLO","HI","HOWDY");
$row=array("HELLO","HI","Hey");
$chkcond = true;
foreach($row as $needle){
if(!in_array($needle, $terms)){
$chkcond = false;
break;
}
}
if($chkcond){
echo "All Found in Array !<br>";
} else {
echo "Not Found !<br>";
}
?>
哎呀重新阅读手册http://php.net/manual/en/function.in-array.php你甚至不需要循环:
<?php
$terms=array("HELLO","HI","HOWDY");
$row=array("HELLO","HI","Hey");
if(in_array($row, $terms)){
echo "All Found in Array !<br>";
} else {
echo "Not Found !<br>";
}
?>
这个尝试是为了创建一个搜索条件,最终将处理输出以根据匹配的递增顺序显示结果
"PHP implode function in if and foreach condition [closed]" 是一个不同的问题!
为什么下面的代码会失败?
$terms = array("HELLO", "HI", "HOWDY");
$row = array("HELLO", "HI", "Hey");
$chkcond = "in_array('".implode("',$"."row".")"." && in_array"."('",$terms)."',$"."row)";
echo "$chkcond<br/><br/>";
if ($chkcond) {
echo "All Found in Array !<br>";}else{echo "Not Found !<br/>";
}
回显结果为
in_array('HELLO',$row) && in_array('HI',$row) && in_array('HOWDY',$row)
并且if条件输出"All Found in Array !"
当 if
条件表明所有三个项都必须在行数组中才能成为“All Found in Array
”,那么为什么在“[=17] 时返回 True
=]" 行数组中不存在?
只需使用 array_diff
http://php.net/array_diff
<?php
$terms=array("HELLO","HI","HOWDY");
$row=array("HELLO","HI","Hey");
$diff = array_diff($terms, $row);
if (0 === count($diff)){echo "All terms Found in Array row !<br>";}else{echo "Not all terms Found in Array row !<br>";}
$terms=array("HELLO","HI","HOWDY");
$row=array("HELLO","HI","Hey","HOWDY");
$diff = array_diff($terms, $row);
if (0 === count($diff)){echo "All terms Found in Array row !<br>";}else{echo "Not all terms Found in Array row !<br>";}
你可以使用 array_diff
类似于:
<?php
$terms=array("HELLO","HI","HOWDY");
$row=array("HELLO","HI","Hey");
$chkcond=array_diff($terms, $row);
var_dump($chkcond);
if(empty($chkcond)) {
echo "All Found in Array !<br>";
} else {
echo "Not Found !<br>";
}
?>
不确定您在尝试什么,但您可以使用 array_diff。
$terms = array("HELLO","HI","HOWDY");
$row = array("HELLO","HI","Hey");
$differences = array_diff($terms, $row);
if ($differences) {
echo "All Found in array";
} else {
"Not Found !<br>";
}
如果您想坚持使用 in_array
,您需要循环您的条款:
<?php
$terms=array("HELLO","HI","HOWDY");
$row=array("HELLO","HI","Hey");
$chkcond = true;
foreach($row as $needle){
if(!in_array($needle, $terms)){
$chkcond = false;
break;
}
}
if($chkcond){
echo "All Found in Array !<br>";
} else {
echo "Not Found !<br>";
}
?>
哎呀重新阅读手册http://php.net/manual/en/function.in-array.php你甚至不需要循环:
<?php
$terms=array("HELLO","HI","HOWDY");
$row=array("HELLO","HI","Hey");
if(in_array($row, $terms)){
echo "All Found in Array !<br>";
} else {
echo "Not Found !<br>";
}
?>