我有一个数组
$results = array(101, 102, 103, 104, 105)
我还有一个输入字段,用户输入一个数字
<input type ="text" name="invoice" />
我将用户输入的数字放入变量
$id = $_POST['invoice']
如何编写if语句来检查用户输入的数字是否在该数组中
我尝试过为每个循环做一次
foreach($result as $value){
if($value == $id){
echo 'this';
}else{
continue;
}
有更好的方法吗?
答案 0 :(得分:11)
if (in_array($id, $results)) {
// ...
}
答案 1 :(得分:4)
使用in_array()
:
if (in_array($_POST['invoice'], $your_array)) {
... it's present
}
答案 2 :(得分:1)
好的,你可以试试这个:
if ( in_array($id, $results))
{
// execute success
}
else
{
// execute fail
}
答案 3 :(得分:0)
您可以像其他人一样使用in_array
if(in_array($id,$results)) {
//do something
} else {
$no_invoice = true;
}
但是如果你碰巧想要使用你的数组键来做任何事情,你可以一石二鸟。
if($key = array_search($id,$results,true)) {
echo 'You chose ' . $results[$key] . '<br />';
}
显然,为了回应你不需要我的方法 - 你可以只回显$ id - 但它对其他东西很有用。就像你有一个多维数组和元素[0]的元素与元素[1]的元素匹配一样。
答案 4 :(得分:0)
如果您希望将一个数组的值与另一个数组的值按顺序进行比较,那么我的代码非常简单:检查一下它会像这样工作:
if(array-1的第1个值等于array-2的第1个值){$ res = $ res + 5}
if($_POST){
$res=0;
$r=$_POST['Radio1']; //array-1
$anr=$_POST['answer']; //array-2
$arr=count($r);
for($ac=0; $ac<$arr; $ac++){
if($r[$ac]==$anr[$ac]){
$res=$res+5;
}
}
echo $res;
}
答案 5 :(得分:-1)
不完全。
你的方式足够好,只需要纠正。
foreach($results as $value){
if($value == $id){
echo 'this';
break;
}
}
是你真正想要的