you+must+use+php+>=70,PHP数组奇怪的有关问题

博客内容涉及一个PHP编程中遇到的问题,即在使用max()函数获取数组最大值时出现警告。问题出在当数组为空或者只有一个元素时,max()函数会抛出错误。解决方案包括检查数据是否为空,以及确保使用max()函数时传入正确的参数。此外,还分享了关于max()函数的一些注意事项和使用技巧,如它可以比较日期,以及在数组为空时的处理方式等。
摘要由CSDN通过智能技术生成

PHP数组奇怪的问题

如下:

PHP code$arr1里面是从数据库里取出来的数据,print_r出来如下:

Array

(

[0] => 30544

[1] => 30544

[2] => 30532

[3] => 30550

[4] => 30544

[5] => 30544

[6] => 30532

[7] => 30532

[8] => 30532

[9] => 30550

[10] => 30544

[11] => 30544

[12] => 30544

[13] => 30544

[14] => 30544

[15] => 30544

[16] => 30532

[17] => 30532

[18] => 30532

[19] => 30532

)

$arr2 = array('1','2','4','5');

//我用同一个函数 max()取最大值,结果如下:

//arr1的结果,会报错,但是可以取到数据

30550

A PHP Error was encountered

Severity: Warning

Message: max() [function.max]: When only one parameter is given, it must be an array

Filename: test.php

Line Number: 104

//arr2正常,输出

5

以上,报错是为什么啊,怎么解决啊。谢谢。

------解决方案--------------------

max() [function.max]: When only one parameter is given, it must be an array

max一个参数的时候,必须是个数组。

PHP codelogminMath 函数

PHP Manual

--------------------------------------------

max

(PHP 4, PHP 5)

max ― 找出最大值

说明

mixed max ( number $arg1 , number $arg2 )

mixed max ( array $numbers [, array $... ] )

max() 返回参数中数值最大的值。

如果仅有一个参数且为数组,max() 返回该数组中最大的值。如果第一个参数是整数、字符串或浮点数,则至少需要两个参数而 max() 会返回这些值中最大的一个。可以比较无限多个值。

Note:

PHP 会将非数值的 string 当成 0,但如果这个正是最大的数值则仍然会返回一个字符串。如果多个参数都求值为 0 且是最大值,max() 会返回其中数值的 0,如果参数中没有数值的 0,则返回按字母表顺序最大的字符串。

Example #1 使用 max() 的例子

参见 min() 和 count()。

User Contributed Notes

sun at drupal dot org 03-Aug-2011 11:25

Note that max() throws a warning if the array is empty:

So make sure your data isn't empty.

php at rijkvanwel dot nl 12-Apr-2011 02:08

To get the largest key in an array:

'first', 1=> 'second', /* ... */ 99 => 'nth' );

$max_key = max( array_keys( $array ) ); // 99

?>

Alex Stanhope 28-Oct-2010 03:00

If you want to test whether x lies within two bounds:

= min($y1, $y2)) && ($x <= max($y1, $y2)) );

}

//called by:

class::isInRange(10,12,2);

//or

$this->isInRange(10,12,2);

//or (drop static)

isInRange(10,12,2);

//simple test function:

static function unit_isInRange() {

$output = array();

$inputlist[] = array(10, 12, 2, true);

$inputlist[] = array(13, 12, 2, false);

$inputlist[] = array(2, -2, 2, true);

$inputlist[] = array(2, -8, -2, false);

foreach($inputlist as $input) {

$output[] = array(

'input' => array($input[0], $input[1], $input[2]),

'output' => self::isInRange($input[0],$input[1],$input[2]),

'expected' => $input[3],

);

}

return($output);

}

?>

dan at coders dot co dot nz 22-May-2010 11:29

max() on undefined parameters does not assume the value is zero, it ignores it.

-2);

// If $dimensions['right'] was never set,

// we may expect it to be treated as zero, but

print max($dimensions['left'], $dimensions['right']);

//

// Returns -2, not zero

print max(0+$dimensions['left'], 0+$dimensions['right']);

?>

would be a work-around, but it's probably tidier to ensure your values are set correctly first.

(on PHP 5.2.11 anyway)

Alex Rath 10-Apr-2010 11:27

Notice that whenever there is a Number in front of the String, it will be used for Comparison.

But just if it is in front of the String

grillen at abendstille dot at 02-Apr-2010 03:55

max only accepts not empty arrays.

if you work a lot with numerical arrays and with max, this function may come in handy:

artem dot yagutyan at gmail dot com 27-Mar-2010 03:28

This Is Good Example: For max to min

$val) {

if ($val == max($array)) return $key;

}

}

$array = array(10, 2, 5, 7, 4,15,32,8,41,25);

$array_count=count($array);

for($i=1;$i<=$array_count;$i++){

$max_val[$i]=max_key($array);

$view=$array[$max_val[$i]];

unset($array[$max_val[$i]]);

print $view."

"; //

}

/* OUTPUT

41 // Max

32

25

15

10

8

7

5

4

2 //Min

*/

?>

marcini 11-May-2009 07:34

Note that max() can compare dates, so if you write something like this:

you will get: 2009-03-15.

ries at vantwisk dot nl 09-Nov-2008 06:36

I had several occasions that using max is a lot slower then using a if/then/else construct. Be sure to check this in your routines!

Ries

Marcus Zacco 29-Sep-2008 09:47

This code loops through seven arrays and finds the highest average value within those arrays - and changes the font color for it. Great for highlighting.

The biggest take-away is this the row

if($average[$i] == max($average))

The number_format just rounds the numbers to 0 decimal points.

".number_format($average[$i], 0, '.', '')." % ";

} else {

echo "Value ".$num.": ".number_format($average[$i],0,'.','')." %

";

}

}

?>

### OUTPUT

Value 1: 52 %

Value 2: 58 %

Value 3: 56 %

Value 4: 73 %

Value 5: 77 %

which is the same as:

$max)

{

$tmp = $max;

}

$y = $tmp;

?>

So if you wanted to bound an integer between 1 and 12 for example:

Input:

$maxvalue,"i"=>$maxindex);

}

?>

jeremi23 at gmail dot com 14-Jun-2007 03:09

max on a an array with key/values

5, 2=> 3);

echo max($tmp);

?>

this return 5, so the max is done on the values.

johnmott59 at hotmail dot com 17-May-2007 12:35

To find the maximum value from a set of 1-dimensional arrays, do this:

The inner max() functions operate on the arrays, the outer max compares the numeric results of the inner ones.

johnphayes at gmail dot com 02-May-2006 09:27

Regarding boolean parameters in min() and max():

(a) If any of your parameters is boolean, max and min will cast the rest of them to boolean to do the comparison.

(b) true > false

(c) However, max and min will return the actual parameter value that wins the comparison (not the cast).

Here's some test cases to illustrate:

1. max(true,100)=true

2. max(true,0)=true

3. max(100,true)=100

4. max(false,100)=100

5. max(100,false)=100

6. min(true,100)=true

7. min(true,0)=0

8. min(100,true)=100

9. min(false,100)=false

10. min(100,false)=false

11. min(true,false)=false

12. max(true,false)=true

--------------------------------------------

logminMath 函数

PHP Manual

相关文章

相关视频

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值