Home  >  Article  >  Backend Development  >  How to query based on array in php

How to query based on array in php

PHPz
PHPzOriginal
2023-04-23 16:43:531135browse

In PHP, array is a very common data structure. We often need to perform queries based on certain values ​​in the array, such as finding the position of an element in the array, finding the position range occupied by certain elements in the array, etc. This article will introduce how to query based on arrays.

1. Find the position of an element in an array

In PHP, we can use the array_search() function to find the position of a specified element in an array. This function accepts two parameters: the element to be found and the array. If the specified element is found, the key name of the element in the array is returned; otherwise, false is returned.

For example, we have an array $numbers = array(1,2,3,4,5,6,7,8,9); and we want to find the position of the number 5 in the array, we can use The following code:

$key = array_search(5, $numbers);

echo $key; // Output 4

2. Find all the specified elements in the array Position

If there are duplicate elements in the array, we may need to find all positions of these elements in the array. PHP provides the array_keys() function, which can return all the keys of the specified element in the array.

The following is an example, assuming we have an array $fruits = array("apple","banana","orange","apple","orange","grape");, we want to find For the position of all "orange" in the array, you can use the following code:

$keys = array_keys($fruits, "orange");

print_r($keys); // Output Array ( [0] => 2 [1] => 4 )

This code will output an array containing all the key names of "orange" in the array.

3. Find the position of elements in a two-dimensional array

In addition to one-dimensional arrays, PHP also supports two-dimensional arrays. If we want to find the position of an element in a two-dimensional array, we need to use another method. We can iterate through the entire array and find whether each element meets the requirements. The following is a sample code:

$users = array(
array("name" => "Tom", "age" => 20),
array("name" = > "Jerry", "age" => 25),
array("name" => "Mike", "age" => 30)
);

function findUser($users, $name) {
foreach ($users as $key => $user) {

if ($user["name"] == $name) {
  return $key;
}

}
return false;
}

$key = findUser($users, "Jerry");

echo $key; // Output 1

This code will output the key name of the element named "Jerry" in the array.

4. Find all elements that meet the conditions in the two-dimensional array

If you want to find all the elements that meet the conditions in the two-dimensional array, we can use the array_filter() function. This function accepts two parameters: the array to be filtered and the callback function. The callback function should return true or false to indicate whether the current element meets the requirements. The following is a sample code:

$users = array(
array("name" => "Tom", "age" => 20),
array("name" = > "Jerry", "age" => 25),
array("name" => "Mike", "age" => 30),
array("name" => "Alice", "age" => 20)
);

function findUsers($users, $age) {
return array_filter($users, function($user) use ($ age) {

return $user["age"] == $age;

});
}

$matchingUsers = findUsers($users, 20);

print_r($matchingUsers);

This code will output all elements whose age is 20 years old.

Summary

In PHP, we can use some built-in functions to query based on arrays. array_search(), array_keys(), and array_filter() are the most commonly used functions and can meet the needs of most situations. If you need to find elements in a multidimensional array, you may need to write some traversal code yourself to achieve it.

The above is the detailed content of How to query based on 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