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
相关文章
相关视频