In the previous article→"PHP Array Learning: Comparing Array Elements and Obtaining the First and Second Largest Values", we introduced the use of for loops to compare the sizes of elements in the array one by one and obtain Methods for the largest and second largest values in an array. Do you think this method is a bit complicated? In fact, we can use PHP functions to get the maximum value and the second maximum value. Let’s learn about it~
The theme of this article is the same as the previous one: "Given a set of numbers and calculate its maximum and second maximum values." But we don’t use for loops and if statements this time. We use PHP built-in functions to achieve this.
Define an array containing such a set of data:
$arr = array(555,5,1,429,18,21,52,2,52,9,3,);
Want to take out the maximum value 555 and the second maximum value 429.
Implementation idea 1:
In fact, there is a built-in max() function in PHP, which can be used to obtain the maximum value in the array in one step ; Then we can remove the maximum value in the array and use the max() function to obtain the maximum value in the remaining elements.
Let’s take a look at the implementation code:
<?php header("content-type:text/html;charset=utf-8"); $arr = array(555,5,1,429,18,21,52,2,52,9,3,); $max = max($arr); $arr = array_diff($arr,array($max)); $secMax = max($arr); echo "最大值为".$max.",第二大值为".$secMax; ?>
Analysis:
Use max($arr)
to get the maximum value of the array Assigned to $max
.
Then create a new array containing only one value of $max, compare the array with the $arr array, and take the difference; simply put, array_diff($arr, array($max))
is used to delete the maximum value $max
.
Finally call max($arr)
to get the maximum value among the remaining elements, and you will get the second largest element of the original array, and add the The value is assigned to $secMax
.
So the output result is:
##Implementation idea 2:
You can sort the array in ascending or descending order according to the size of the element values. Then the maximum value and the second maximum value of the array are: the first and second (descending order) or the first and last and second to last (ascending) elements//升序排序 $arr = array(555,5,1,429,18,21,52,2,52,9,3,); sort($arr); var_dump($arr);
//降序排序 $arr = array(555,5,1,429,18,21,52,2,52,9,3,); rsort($arr); var_dump($arr);
<?php header("content-type:text/html;charset=utf-8"); $arr = array(555,5,1,429,18,21,52,2,52,9,3,); //降序排序 rsort($arr); $max = $arr[0]; $secMax = $arr[1]; echo "最大值为".$max.",第二大值为".$secMax."<br>"; //升序排序 sort($arr); $len = count($arr); //数组长度 $max = $arr[$len-1]; $secMax = $arr[$len-2]; echo "最大值为".$max.",第二大值为".$secMax; ?>
PHP function array array function video explanation, come and learn!
The above is the detailed content of Tips for learning PHP arrays and using functions to extract the maximum and second maximum values. For more information, please follow other related articles on the PHP Chinese website!