Home  >  Article  >  Backend Development  >  How to determine whether a value is in an array in PHP (a brief analysis of various methods)

How to determine whether a value is in an array in PHP (a brief analysis of various methods)

PHPz
PHPzOriginal
2023-04-12 09:19:581151browse

PHP is a popular programming language, and its array is a very important data structure. When we need to determine whether a value is in an array, we can use the in_array() function in PHP. This article will detail how to use the in_array() function and several other methods to determine whether a value is in an array.

1. Use the in_array() function to determine whether a value is in an array

In PHP, the in_array() function is the simplest and most commonly used method to determine whether a value is in an array. Its syntax is as follows:

in_array($value, $array, $strict);

Among them, $value is the value to be found, $array is the array to be found, and $strict is Optional parameter indicating whether type checking is to be performed.

For example, we have an array $fruits, which contains some fruits:

$fruits = [
  'apple',
  'banana',
  'pear',
  'orange',
  'kiwi'
];

We now want to determine whether "pear" is in the array $fruits, you can use the following code:

if (in_array('pear', $fruits)) {
  echo 'pear is in the array.';
} else {
  echo 'pear is not in the array.';
}

The output result is:

pear is in the array.

If you want to perform type checking, you can set the $strict parameter to true. For example:

$numbers = [1, 2, 3, 4, 5];
if (in_array('1', $numbers, true)) {
  echo '1 is in the array.';
} else {
  echo '1 is not in the array.';
}

The output result is:

1 is not in the array.

2. Use the array_search() function to determine whether the value is in the array

Another method to determine whether the value is in the array Is using the array_search() function. Its syntax is as follows:

array_search($value, $array, $strict);

Among them, $value is the value to be found, $array is the array to be found, and $strict is Optional parameter indicating whether type checking is to be performed. If found, the function returns the key name of the value in the array; if not found, returns false.

For example, we have an associative array $prices, which contains the prices of some fruits:

$prices = [
  'apple' => 0.5,
  'banana' => 0.3,
  'pear' => 0.6,
  'orange' => 0.8,
  'kiwi' => 0.7
];

We now want to determine whether the price of "banana" exists in the array $prices, you can Use the following code:

$key = array_search(0.3, $prices);
if ($key !== false) {
  echo 'banana exists and the price is ' . $prices['banana'];
} else {
  echo 'banana does not exist.';
}

The output is:

banana exists and the price is 0.3

If you want to perform type checking, you can set the $strict parameter to true. For example:

$key = array_search('0.3', $prices, true);
if ($key !== false) {
  echo 'banana exists but its price is in a different data type.';
} else {
  echo 'banana does not exist.';
}

The output result is:

banana does not exist.

3. Use isset() function to determine whether the value is in the array

Another simple method is to use isset() Function to determine whether a key exists in an array. For example:

if (isset($prices['banana'])) {
  echo 'banana exists and the price is ' . $prices['banana'];
} else {
  echo 'banana does not exist.';
}

The output result is the same as the previous example, which is:

banana exists and the price is 0.3

However, this method cannot determine whether a value exists among the values ​​in the array, but can only determine whether a key exists in the array. Therefore, it only works with normal arrays, not associative arrays or multidimensional arrays.

4. Use the extension methods of in_array() and array_search()

In addition to directly using the in_array() and array_search() functions, there are some extension methods that can help us better Determine whether the value is in the array. For example:

1. Use the array_keys() function in the in_array() function:

if (in_array($value, array_keys($array))) {
  echo $value . ' exists in the array.';
} else {
  echo $value . ' does not exist in the array.';
}

The principle of this method is to first use the array_keys() function to get all the keys in the array, and then use The in_array() function determines whether the value is in the list of keys. However, this method is inefficient and takes up a lot of memory and time if the array is large.

2. Use the array_flip() function and isset() function:

if (isset(array_flip($array)[$value])) {
  echo $value . ' exists in the array.';
} else {
  echo $value . ' does not exist in the array.';
}

The principle of this method is to first use the array_flip() function to reverse the keys and values ​​in the array, and then Use the isset() function to determine whether the value exists in the new array. This method is more efficient, but it only applies to ordinary arrays, not associative arrays or multi-dimensional arrays.

5. Summary

In PHP, there are many ways to determine whether a value is in an array. The most common methods are to use the in_array() function and array_search() function. If you want to perform type checking, you need to set the $strict parameter to true. In addition, there are some extended methods that can help us better determine whether the value is in the array. Different methods may be chosen in different situations.

The above is the detailed content of How to determine whether a value is in an array in PHP (a brief analysis of various methods). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn