Home >Backend Development >PHP Problem >How to determine whether a string is in an array in php

How to determine whether a string is in an array in php

PHPz
PHPzOriginal
2023-04-23 10:21:27582browse

In PHP, determining whether a string is in an array is a very common operation. In actual development, there are often situations where it is necessary to determine whether a string is in an array.

If the array that needs to be judged is relatively small, you can use the in_array function to judge. in_array can determine whether a value is in an array and return true or false.

The sample code is as follows:

<?php
$arr = array('apple','banana','orange');
if(in_array('apple',$arr)){
    echo '存在';
}else{
    echo '不存在';
}

In this example, the array $arr contains 3 elements: apple, banana and orange. If the value to be found is apple, "exists" will be output; if the value to be found is grapefruit, "does not exist" will be output.

However, in actual development, there are often situations where the array that needs to be judged is relatively large. If you use the in_array function to judge, the efficiency will be lower, because the in_array function needs to traverse the entire array to find the target element.

In this case, we can use another function provided by PHP - array_search to determine whether the array contains an element. array_search will return the subscript of the target element in the array, if not found, it will return false.

The sample code is as follows:

<?php
$arr = array('apple','banana','orange');
$find = 'banana';
if(($key = array_search($find,$arr)) !== false){
    echo $find.'存在,下标为:'.$key;
}else{
    echo $find.'不存在';
}

In this example, the array we need to judge is still $arr, and the value we need to find is banana. It should be noted that when using the array_search function, the return value needs to be judged. If the return value is not false, it means that the target element exists, and the subscript of the target element in the array is returned; if the return value is false, the target element does not exist.

If the conditions that need to be judged are more complex, such as finding elements that contain a certain substring in an array, you can use the array_filter function provided by PHP. The array_filter function can be used to filter elements in an array that meet specified conditions and return a new array.

The sample code is as follows:

<?php
$arr = array('apple','banana','orange','grapefruit','pear');
$find = 'ap';
$res = array_filter($arr,function($item) use ($find){
    if(strpos($item,$find) !== false){
        return true;
    }else{
        return false;
    }
});
if(!empty($res)){
    echo '找到了包含'.$find.'的元素:'.implode(',',$res);
}else{
    echo '没有找到包含'.$find.'的元素';
}

In this example, we first define an array $arr, and then the condition to be found is the element containing the string "ap". We use the array_filter function to filter elements in the array that meet the conditions. The filtering condition is: use the strpos function to determine whether the element contains the string "ap". If it does, it returns true, otherwise it returns false. If the final filter result is not empty, it means that the element containing "ap" was found.

In short, PHP provides a variety of ways to determine whether a string is in an array, and developers can choose according to specific needs and actual conditions. In actual application, attention must also be paid to writing efficient and robust code.

The above is the detailed content of How to determine whether a string is in an array in 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