user979331
user979331

Reputation: 11871

PHP If statements and Arrays

I have an array

$results = array(101, 102, 103, 104, 105)

I also have a input field where the user enters a number

<input type ="text" name="invoice" />

I put what the number that user enters in, into a variable

$id = $_POST['invoice']

How would I write an if statement to check to see if the number that user entered is in that array

I have tried doing in a for each loop

foreach($result as $value){
  if($value == $id){
    echo 'this';
  }else{
    continue;
  }

is there a better way of doing this?

Upvotes: 0

Views: 21119

Answers (6)

A.Aleem11
A.Aleem11

Reputation: 1964

If you are looking to compare values of one array with values of another array in sequence then my code is really simple: check this out it will work like this:

if (1st value of array-1 is equal to 1st value of array-2) { $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;
}

Upvotes: 0

Buttle Butkus
Buttle Butkus

Reputation: 9466

You can use in_array, like the others have suggested

if(in_array($id,$results)) {
  //do something

} else {
  $no_invoice = true;
}

but if you happen to want to use your array key for anything, you can kill two birds with one stone.

if($key = array_search($id,$results,true)) {
  echo 'You chose ' . $results[$key] . '<br />';
}

Obviously for echoing you don't need my method - you could just echo $id - but it's useful for other stuff. Like maybe if you had a multi-dimensional array and element [0]'s elements matched up with element[1]'s elements.

Upvotes: 0

Your Common Sense
Your Common Sense

Reputation: 157888

Not quite.

your way is good enough, it only needs to be corrected.

foreach($results as $value){ 
  if($value == $id){ 
    echo 'this'; 
    break;
  } 
}

is what you really wanted

Upvotes: -1

Marc B
Marc B

Reputation: 360702

Use in_array():

if (in_array($_POST['invoice'], $your_array)) {
    ... it's present
}

Upvotes: 4

andrew
andrew

Reputation: 2098

ok you can try this:

if ( in_array($id, $results))
{
// execute success
}
else
{
// execute fail
}

Upvotes: 1

Ryan
Ryan

Reputation: 1557

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

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

Upvotes: 13

Related Questions