首页 >后端开发 >php教程 >奇怪问题 max函数识别不了参数

奇怪问题 max函数识别不了参数

WBOY
WBOY原创
2016-06-23 14:19:152042浏览

PHP

$chrw = $this->GetArrStringWidth($chars, '', '', 0, true);		array_walk($chrw, array($this, 'getRawCharWidth'));		$maxchwidth = max($chrw);

报这样的错误  max() [function.max]: Array must contain at least one element
我在max函数之前输出$chrw 有内容,是array([1]=>6.35 [2]=>6.35 [3]=>6.35)

回复讨论(解决方案)

如果我写max(array(6.35,6.35,6.35)),则错误消失

大神们知道怎么回事么??为啥max函数识别不出这个参数

这是 tcpdf类的代码,我本地没有报错,但是在服务器上就报错

$chrw = $this->GetArrStringWidth($chars, '', '', 0, true);		array_walk($chrw, array($this, 'getRawCharWidth'));		$maxchwidth = max($chrw);

报这样的错误  max() [function.max]: Array must contain at least one element
我在max函数之前输出$chrw 有内容,是array([1]=>6.35 [2]=>6.35 [3]=>6.35)
max函数里肯定是可以放变量的,报错说明里面的数组有问题,array([1]=>6.35 [2]=>6.35 [3]=>6.35)
这个数组我怎么看都感觉不对啊

Array must contain at least one element
阵列必须包含至少一种元素



max函数里肯定是可以放变量的,报错说明里面的数组有问题,array([1]=>6.35 [2]=>6.35 [3]=>6.35)
这个数组我怎么看都感觉不对啊

不好意思,那是我手写的,是这样的
Array
(
    [0] => 6.35
    [1] => 6.35
    [2] => 6.35
)

Array must contain at least one element
阵列必须包含至少一种元素
数组是这样的
Array
(
    [0] => 6.35
    [1] => 6.35
    [2] => 6.35
)
数组里面有元素啊

var_dump($chrw)看看是什么

var_dump($chrw)看看是什么

array(3) { [0]=> float(6.35) [1]=> float(6.35) [2]=> float(6.35) } 

php 是不会弄错的,他说是空的那么就是空的了!

$chrw = $this->GetArrStringWidth($chars, '', '', 0, true);
var_dump($chrw);
array_walk($chrw, array($this, 'getRawCharWidth'));
var_dump($chrw);
$maxchwidth = max($chrw);

分别看一下

php 是不会弄错的,他说是空的那么就是空的了!

$chrw = $this->GetArrStringWidth($chars, '', '', 0, true);
var_dump($chrw);
array_walk($chrw, array($this, 'getRawCharWidth'));
var_dump($chrw);
$maxchwidth = max($chrw);

分别看一下

我按照您说的做了,分别看了下,但是输出的都是
array(3) { [0]=> float(6.35) [1]=> float(6.35) [2]=> float(6.35) }

php 是不会弄错的,他说是空的那么就是空的了!

$chrw = $this->GetArrStringWidth($chars, '', '', 0, true);
var_dump($chrw);
array_walk($chrw, array($this, 'getRawCharWidth'));
var_dump($chrw);
$maxchwidth = max($chrw);

分别看一下

array(3) { [0]=> float(6.35) [1]=> float(6.35) [2]=> float(6.35) } array(3) { [0]=> float(6.35) [1]=> float(6.35) [2]=> float(6.35) }

还有奇怪的,max虽然报错了,但是我 echo $maxchwidth  竟然是6.35

灵异事件
而且本地没错,服务器错

你上面的var_dump是否都在本地测试啊?要在出错的服务器上测试啊

还有奇怪的,max虽然报错了,但是我 echo $maxchwidth  竟然是6.35

那你就要检查是否还有别的地方用了max(),说不准是其他地方报错

灵异事件
而且本地没错,服务器错

你上面的var_dump是否都在本地测试啊?要在出错的服务器上测试啊
恩,就是在服务器上测试的


还有奇怪的,max虽然报错了,但是我 echo $maxchwidth  竟然是6.35

那你就要检查是否还有别的地方用了max(),说不准是其他地方报错

max() [function.max]: Array must contain at least one elementError File: \includes\plugin\tcpdf\tcpdf.php at 6301 line.
>> report_issue
>> 返回上一页


还有奇怪的,max虽然报错了,但是我 echo $maxchwidth  竟然是6.35

那你就要检查是否还有别的地方用了max(),说不准是其他地方报错
指定行数了就说在这一行

max计算前用 array_values($chrw) 处理下数组试试

谢谢大家,不知道怎么回事,今天自己就好使了

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn