2011-09-01 65 views
1

我有這樣陣列切割cfsimplexml對象

[17] => CFSimpleXML Object 
     (
      [Key] => habteen.mp3 
      [Size] => 5931725 
     ) 

[18] => CFSimpleXML Object 
     (
      [Key] => lawnesareh.mp3 
      [LastModified] => 2011-05-07T22:24:15.000Z 

     ) 

數組,我想重點和大小的值。我該怎麼做?

回答

2

下面將迭代通過陣列項,並檢查對象具有KeySize屬性:

foreach($arr as $item) 
{ 
    if(isset($item->Key)) 
    { 
     $item->Key; 
    } 
    if(isset($item->Size)) 
    { 
     $item->Size; 
    } 
} 
7

甲CFSimpleXML對象是亞馬遜WEBSERVICES PHP API,它提供周圍的SimpleXML的包裝的一部分。它有一個特殊的構造函數來捕獲未知的函數調用並將它們轉換爲xpath請求。

默認響應是返回另一個CFSimpleXML對象,通常您只需要該值,因此必須將其轉換爲適當的類型。

$key = (string)$array[17]->Key 

另一個更復雜的例子可能看起來像這樣。如果您在AWS有一個已知的EC2實例,你需要它的可用性區域繼承人,將如何看:

$description = $ec2->describe_instances(array('InstanceId' => $instance_id)); 

$availability_zone = (string)$description->body->reservationSet->item->instancesSet->item->placement->availabilityZone; 

其中$ EC2是一個AmazonEC2對象的實例和$ INSTANCE_ID是您的實例的ID(東西像i-6301ea00)。返回的$描述將作爲CFSimpleXML對象返回,因此上面的函數調用實際上將轉換爲遍歷XML文檔以獲取可用區域。