PHP中的Max函数在字符串上失败?

时间:2015-03-07 04:39:49

标签: php

鉴于此list.txt文件:

9
10
19
猜猜是什么?

max(split("\n",$file_handle)) gives me 9

max(explode(PHP_EOL,$file_handle)) gives me 9

现在,在字符串上:

$string = "9 10 19"; max(split("\n",$string)) gives me 19

更新:从文件中读取时,我得到字符串,而max()似乎在比较字符串值时找不到正确的最大值?! 9大于10.字符串上的相同文件内容工作正常。 file_get_contents()/ fread()同样的问题。

2 个答案:

答案 0 :(得分:3)

你确定EOL(行尾)是“\ n”吗?

看看这个答案:

Explode PHP string by new line

并检查以获取EOL说明:

Difference between \n and \r?

答案 1 :(得分:0)

这解决了它。对我来说仍然是一个谜,为什么值来自文件中的字符串和来自具有相同内容的字符串中的数字。无论如何,这是修复:

max(array_map('intval', split("\n",$file_handle)));