Home > Article > Backend Development > PHP finds the subscript of an integer array
In PHP, we often need to perform some operations on arrays, such as finding the subscript of an element in the array. If the elements in the array are all unique, we can use the array_search() function to find the index of the element. But if there are identical elements in the array, the function will return an incorrect result because it will only return the index of the first matching element. In this case, we need to use other methods to find the subscript of the array element.
Below I will share several methods to find the subscript of an integer array.
Method 1: Use the in_array() function
The in_array() function can check whether a value exists in the array, and returns true if it exists, otherwise it returns false. Of course, we can use this function to find the subscript of an element in the array, as shown below:
$array = array(1, 2, 3, 4, 5); $key = array_search(3, $array); if ($key !== false) { echo "3 的下标是:$key"; } else { echo "数组中不存在 3"; }
Output result:
3 的下标是:2
However, this method only applies to elements in the array The only case is if there are duplicate elements in the array, the subscript of the element cannot be accurately obtained.
Method 2: Use the array_keys() function
array_keys() function can return all the key names in an array, that is, return the subscript list of the array. We can use this function to find all subscripts of an element in the integer array, as shown below:
$array = array(1, 2, 3, 3, 4, 5); $keys = array_keys($array, 3); if (!empty($keys)) { foreach ($keys as $key) { echo "3 的下标是:$key<br>"; } } else { echo "数组中不存在 3"; }
Output result:
3 的下标是:2 3 的下标是:3
This method can accurately obtain an element in the integer array All subscripts of elements, including subscripts of repeated elements. However, if the element does not exist in the array, an empty array is returned.
Method 3: Use the array_flip() and isset() functions
The array_flip() function can exchange the keys and values in the array and then return the new array. If there are duplicate values in the original array, some data will be lost. But if the values in our array are all unique, we can use this method to find the subscript of an element in the integer array, as follows:
$array = array(1, 2, 3, 4, 5); $flipped = array_flip($array); if (isset($flipped[3])) { echo "3 的下标是:" . $flipped[3]; } else { echo "数组中不存在 3"; }
Output result:
3 的下标是:2
Although this method is relatively simple, it is only suitable for situations where the elements in the array are unique. If there are identical elements in the array, we cannot get the correct subscript.
Method 4: Use callback function and array_filter() function
array_filter() function can filter array elements according to specified conditions, and then return array elements that meet the conditions. We can use this function combined with a custom callback function to find the subscript of an element in the integer array, as shown below:
$array = array(1, 2, 3, 3, 4, 5); $index = null; array_filter($array, function($key, $value) use (&$index) { if ($value == 3 && is_null($index)) { $index = $key; } }, ARRAY_FILTER_USE_BOTH); if (!is_null($index)) { echo "3 的下标是:$index"; } else { echo "数组中不存在 3"; }
Output result:
3 的下标是:2
This method can be accurate Get the first subscript of an element in an integer array, including the subscripts of repeated elements. However, the code is more complicated due to the need for a custom callback function.
Summary
For the problem of finding the subscript of an integer array, we can choose different methods to solve it. The appropriate method should be selected according to the content of the array and the application scenario. If the elements in the array are all unique, we can use the array_search() function or array_flip() function to find the subscript of the element. If there are duplicate elements in the array, we can choose to use the array_keys() function or the array_filter() function combined with a custom callback function to find the subscript of the element.
The above is the detailed content of PHP finds the subscript of an integer array. For more information, please follow other related articles on the PHP Chinese website!