Home  >  Article  >  Backend Development  >  Tips for learning PHP arrays and using functions to extract the maximum and second maximum values

Tips for learning PHP arrays and using functions to extract the maximum and second maximum values

青灯夜游
青灯夜游Original
2021-08-18 14:03:213776browse

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:

Tips for learning PHP arrays and using functions to extract the maximum and second maximum values

##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);

Tips for learning PHP arrays and using functions to extract the maximum and second maximum values

//降序排序
$arr = array(555,5,1,429,18,21,52,2,52,9,3,);
rsort($arr);
var_dump($arr);

Tips for learning PHP arrays and using functions to extract the maximum and second maximum values

We just take out these two 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,);

//降序排序
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;
?>

Output results:

Tips for learning PHP arrays and using functions to extract the maximum and second maximum values

The ascending method also needs to consider the length of the array, while the descending method is simpler. .


Okay, that’s all. If you want to know anything else, you can click this. → →

php video tutorial

Finally, I would like to recommend a free video tutorial on PHP arrays:

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!

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