Home  >  Article  >  Backend Development  >  How to check if a value is in a 2D array using PHP

How to check if a value is in a 2D array using PHP

PHPz
PHPzOriginal
2023-04-14 20:03:111079browse

In PHP, two-dimensional array is a very common data structure. In actual development, we sometimes need to determine whether a certain value is in a two-dimensional array. This article will introduce how to use PHP to check whether a value is in a two-dimensional array.

  1. Method 1: Use foreach loop

Use foreach loop to traverse the two-dimensional array, compare each value one by one, and return true if the value exists in the two-dimensional array , otherwise return false.

The sample code is as follows:

function in_array_2d($value, $array) {
    foreach ($array as $item) {
        if (in_array($value, $item)) {
            return true;
        }
    }
    return false;
}

The implementation of the above code is relatively simple. It uses PHP's built-in in_array function to determine whether the value is in the array, and uses a foreach loop to traverse the two-dimensional array.

The usage method is also very simple, just pass in the value to be judged and the two-dimensional array, for example:

$array = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9),
);
$value = 5;
if (in_array_2d($value, $array)) {
    echo '值存在于数组中';
} else {
    echo '值不存在于数组中';
}

In this example, $array is a two-dimensional array, $value is the value that needs to be judged, and the execution result is "the value exists in the array".

  1. Method 2: Use the array_walk_recursive function

Use the array_walk_recursive function to traverse all the elements in the two-dimensional array. If the value exists, return true, otherwise Return false.

The sample code is as follows:

function in_array_2d($value, $array) {
    $exist = false;
    array_walk_recursive($array, function($item) use (&$exist, $value) {
        if ($item == $value) {
            $exist = true;
        }
    });
    return $exist;
}

The above code uses the array_walk_recursive function to traverse the two-dimensional array, and uses the use keyword to pass $exist and $value into the function. $exist exists. Flag variable, $value is the value that needs to be judged.

Similarly, the usage method is also very simple, just pass in the value to be judged and the two-dimensional array, for example:

$array = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9),
);
$value = 5;
if (in_array_2d($value, $array)) {
    echo '值存在于数组中';
} else {
    echo '值不存在于数组中';
}

In this example, $array is a two-dimensional array, $value is the value that needs to be judged, and the execution result is "the value exists in the array".

Summary

Both of the above two methods can be used to determine whether a value is in a two-dimensional array. When using it, you can choose different methods according to your own needs. In terms of performance, the time complexity of both methods is O(n^2). If the two-dimensional array is relatively large, it is recommended to choose other more efficient algorithms.

The above is the detailed content of How to check if a value is in a 2D array using PHP. 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