我对xml feed(atom)有点麻烦。我正在为每个循环运行一个使用简单的xml返回价格并将它们转换为数组,这些数组在下面工作正常: -
foreach ($dc->departures->departure as $price)
{
$lowest = $price->prices->price[5]->asXML();
$lowestval = array($lowest);
print_r($lowestval);
}
返回: -
Array ( [0] => 2289 )
Array ( [0] => 2207 )
Array ( [0] => 2369 )
Array ( [0] => 2229 )
我的目标是只返回最低价格,因此我可以显示价格来自:区域。根据我的理解,我需要使用min()
函数,但这仅适用于具有多个值的一个数组。我已经尝试过array_merge,它似乎不起作用,只返回与上面相同。我是一个PHP新手,所以可能有一些明显的东西。我们将不胜感激。
答案 0 :(得分:1)
试试这个。工作正常
<?php
foreach ($dc->departures->departure as $price)
{
$lowest = $price->prices->price[5]->asXML();
$lowestval[] = $lowest;
}
$min = min($lowestval);
echo $index = array_search($min, $array);
?>
答案 1 :(得分:0)
$data = array();
$data[] =Array (0 => 2289 ) ;
$data[] = Array ( 0 => 2207 ) ;
$data[] = Array ( 0 => 2369 ) ;
$data[] = Array ( 0 => 2229 );
array_multisort($data);
$first = array_shift($data);
var_dump($first); // 2207
答案 2 :(得分:0)
您还可以使用'sort()'函数对数组值进行排序。 这是一个带有一些额外值以及合并数组的例子。
$arry1 = array(
array(5),
array(10000),
array(2289),
array(2288),
array(2207),
array(2369),
array(2229),
array(5421),
array(541)
);
$arry2 = array(
array(456789),
array(54564)
);
$arry1 = array_merge($arry1,$arry2);
sort($val);
echo '<pre>';
print_r($val);
echo '</pre>';
然后你可以使用数组的第一个元素作为最小值。
echo $arry1[0][0];