2011-09-01 63 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文档以获取可用区域。