php中的有线多维数组问题

时间:2012-07-05 15:42:53

标签: php rss

我正在尝试获取rss feed并将节点值推送到数组。我虽然我的以下PHP代码将创建一个单独的数组而不是多维数组。

 //parse rss
    $contents= file_get_contents('http://rss..');
    $xmlStr= simplexml_load_string($contents); 


    $array=array();
          foreach ($xmlStr->item as $node):

                  $array[]=$node->title;

                 echo '<pre>';
                    print_r($array);
                 echo '<pre>';


           endforeach;

但结果我的数组输出是

Array
(
    [0] => SimpleXMLElement Object
        (
            [0] => App Store Bug Corrupts Binaries; Angry Birds Crash
        )

    [1] => SimpleXMLElement Object
        (
            [0] => In UK, HTC Defeats Apple's "Obvious" Slide Unlock Patent
        )

    [2] => SimpleXMLElement Object
        (
            [0] => WikiLeaks Begins Release of 2.5m Syrian Emails
        )

    [3] => SimpleXMLElement Object
        (
            [0] => A Critical Examination of Bill Gates' Philanthropic Record
        )

    [4] => SimpleXMLElement Object
        (
            [0] => Ask Slashdot: How Does Your Company Evaluate Your Performance?
        )

    [5] => SimpleXMLElement Object
        (
            [0] => UAV Cameras an Eye In the Sky For Adventurous Filmmakers
        )

    [6] => SimpleXMLElement Object
        (
            [0] => Copyrights To Reach Deep Space
        )

    [7] => SimpleXMLElement Object
        (
            [0] => FDA Approves HIV Home-Use Test Kit
        )

    [8] => SimpleXMLElement Object
        (
            [0] => Texas Scientists Regret Loss of Higgs Boson Quest
        )

    [9] => SimpleXMLElement Object
        (
            [0] => Icelandic MP Claims US Vendetta Against WikiLeaks
        )

    [10] => SimpleXMLElement Object
        (
            [0] => Microsoft's 'Cannibalistic Culture'
        )

    [11] => SimpleXMLElement Object
        (
            [0] => Android 4.1 Jelly Bean Review
        )

)

知道怎么改变这个吗?非常感谢。

1 个答案:

答案 0 :(得分:2)

您需要将每个节点转换为字符串(它当前是SimpleXMLElement),以便在简单数组中返回一个纯字符串,并从title[]数组中检索第一个项目。

SimpleXML在其对象上实现__toString()魔术方法,这就是为什么它会像print_r()那样响应它,但是要将它作为字符串检索,你需要将它作为字符串。< / p>

foreach ($xmlStr->item as $node):
   // Cast the first array value to a string
   $array[] = (string)$node->title[0];
   echo '<pre>';
     print_r($array);
   echo '<pre>';
endforeach;