Php Max函数未返回正确的结果

Php Max函数未返回正确的结果,php,arrays,Php,Arrays,我试图在php中使用max finction从数组中获取最大值。但是,尽管使用print\r确保数组按预期显示,但max($array)返回错误的结果。 请看下面的代码,我使用了来自的“simple_html_dom.php”。我期望值为220,但当我回显max($items)时,单击submit时返回24。非常感谢您的帮助 <html> <body> <h2>Search</h2> <form method="post"> Sear

我试图在php中使用max finction从数组中获取最大值。但是,尽管使用print\r确保数组按预期显示,但max($array)返回错误的结果。 请看下面的代码,我使用了来自的“simple_html_dom.php”。我期望值为220,但当我回显max($items)时,单击submit时返回24。非常感谢您的帮助

<html>

<body>
<h2>Search</h2>
<form method="post">
Search: <input type="text" name="q" value="google"/>
<input type="submit" value="Submit">
</form>

<?php

include 'simple_html_dom.php';  

if (isset($_POST['q'])) {
$search = $_POST['q'];
$search = ucwords($search);
$search = str_replace(' ', '_', $search);  
$html = file_get_html("http://en.wikipedia.org/wiki/$search");

?>
<h2>Search results for '<?php echo $search; ?>'</h2>
<ol>
<?php
$items = array();
foreach ($html->find('img') as $element): ?>


<?php $photo = $element->src;
$logo = 'Logo';
if(strpos($photo, $logo)) 
{


if (preg_match_all('/[0-9]+px/', $photo, $result)) {
echo '<br/>';

$rp = trim($result[0][0],"px") .'<br/>';
$items[] = $rp;

} else {
echo "Not found";
}
} 

?>              

<?php endforeach; echo max($items);
print_r($items);?>
</ol>
<?php 
}
?>

</body>
</html>

搜寻
搜索:
“”的搜索结果
以下是var_转储的结果($items):

数组(大小=2)
0=>字符串“220
”(长度=8) 1=>字符串“24
”(长度=7)

如你所见,它把它当作一个字符串。因此,
max()
可以正常工作,您需要首先正确格式化它,剪切标记并转换为
int
假设它是一个整数,只需更改
$items[]=$rp
$items[]=intval($rp)。。。例如,这会将数组项从
'220
'
(字符串)更改为
220
(整数)。

为什么要使用
preg\u match\u all()
,然后只存储第一个结果(
$result[0][0]
)?对
preg\u match()
的简单调用不是更有效吗?此外,请缩进您的代码。
print\r
的结果在哪里?在将$rp存储到$items之前,请将其转换为整数$项目[]=(整数)$rp<代码>$rp=trim($result[0][0],“px”)。
。。。为什么?您还应该将
max($items)
更改为
max($items)。“
以保留代码的逻辑。显然,您还应该删除原始的

array (size=2)
  0 => string '220<br/>' (length=8)
  1 => string '24<br/>' (length=7)