合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
# 求出一个数组的最大值,并得到对应的数组下标 > 思路 > 1. 定义一个数组 > 2. 将第一个数默认为最大值 > 3. 从第二个数开始进行循环比较,发现有更大的就进行交换 ## Go语言实现 ```go // 求出一个数组的最大值,并得到对应的下标 var intArr [5]int = [...]int{1, -1, 9, 90, 11} maxVal := intArr[0] maxValIndex := 0 for i := 1; i < len(intArr); i++ { // 开始从第二个数开始比较,如果发现有更大的就进行交换 if maxVal < intArr[i] { maxVal = intArr[i] maxValIndex = i } } fmt.Printf("maxVal=%v maxValIndex=%v", maxVal, maxValIndex) ``` ## PHP实现 ```php class WArray { protected $array = []; public function __construct($array) { $this->array = $array; } public function getArrayMaxValueAndIndex() { $maxVal = $this->array[0]; $maxValIndex = 0; foreach ($this->array as $k => $v) { if ($maxVal < $this->array[$k]) { $maxVal = $this->array[$k]; $maxValIndex = $k; } } return json_encode([ 'maxVal' => $maxVal, 'maxValIndex' => $maxValIndex, ]); } } ``` **调用结果** ```php // 调用 $warray = new WArray([1, -1, 9, 90, 11]); $arrayMaxValueAndIndex = $warray->getArrayMaxValueAndIndex(); dd($arrayMaxValueAndIndex); // 这里的dd是一个打印函数 // 结果显示 {"maxVal":90,"maxValIndex":3} ```