bammab
bammab

Reputation: 2563

How to return data from an array within an array

I have the following data that I parsed from an xml file and now I have a problem returning the data. How do i return the photo src data from the array within the photo array. Any ideas as to what I am doing wrong?

Code

$xml = simplexml_load_file($url);
$photo_url = $xml['photo']->src;

for ($i=0, $n=count($photo_url); $i<$n; ++$i) {
    echo $photo_url[$i].'<br>';
}

Data

["photo"]=>
  array(46) {
    [0]=>
    object(SimpleXMLElement)#2 (1) {
      ["@attributes"]=>
      array(6) {
        ["id"]=>
        string(5) "26001"
        ["src"]=>
        string(36) "1006416.jpg"
        ["thumb"]=>
        string(42) "1006416_thumb.jpg"
        ["title"]=>
        string(16) "album"
        ["subtitle"]=>
        string(6) "01.jpg"
        ["favorite"]=>
        string(0) ""
      }
    }
    [1]=>
    object(SimpleXMLElement)#3 (1) {
      ["@attributes"]=>
      array(6) {
        ["id"]=>
        string(5) "26001"
        ["src"]=>
        string(36) "1006417.jpg"
        ["thumb"]=>
        string(42) "1006417_thumb.jpg"
        ["title"]=>
        string(16) "album"
        ["subtitle"]=>
        string(6) "02.jpg"
        ["favorite"]=>
        string(0) ""
      }
    }

Upvotes: 2

Views: 93

Answers (1)

nickb
nickb

Reputation: 59699

You should use the SimpleXMLElement attributes method, like so:

$xml = simplexml_load_file($url);
foreach( $xml as $xml_node)
{
    $attributes = $xml_node->attributes();
    echo 'Photo source: ' . $attributes['src'] . "\n";
}

Demo

Upvotes: 1

Related Questions