从XML Feed合并数组

时间:2013-07-15 09:42:34

标签: php xml simplexml

我对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新手,所以可能有一些明显的东西。我们将不胜感激。

3 个答案:

答案 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];