PHP If语句和数组

时间:2011-11-06 06:12:42

标签: php arrays if-statement

我有一个数组

$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;
  }

有更好的方法吗?

6 个答案:

答案 0 :(得分:11)

    if (in_array($id, $results)) {
         // ...
    }

http://php.net/manual/en/function.in-array.php

答案 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;
  } 
}

是你真正想要的