2015-11-16 50 views
-1

我有这3和4多维数组($回应),我需要“提取”一些值。多维ARRAY - 3和4级

Array ( 
[status] => 200 
[response] => Array ( 
    [api_id] => 38229dd9-8c52-11e5-80f6-22000afd0039 
    [meta] => Array ( 
     [limit] => 20 
     [next] => /v1/Account/xxx/Call/?limit=20&offset=20 
     [offset] => 0 
     [previous] => 
     [total_count] => 57) 
    [objects] => Array ( 
     [0] => Array ( 
      [answer_time] => 2015-11-13 18:36:19+01:00 
      [bill_duration] => 10 
      [billed_duration] => 60 
      [call_direction] => inbound 
      [call_duration] => 10 
      [call_uuid] => dcd94e59-8775-4c81-a4b1-cd5d41d630c6 
      [end_time] => 2015-11-13 18:36:29+01:00 
      [from_number] => 3300000000 
      [initiation_time] => 2015-11-13 18:36:18+01:00 
      [parent_call_uuid] => 
      [resource_uri] => /v1/Account/xxx/Call/dcd94e59-8775-4c81-a4b1-cd5d41d630c6/ 
      [to_number] => 3300000000 
      [total_amount] => 0.00500 
      [total_rate] => 0.00500) 
     [1] => Array ( 
      [answer_time] => 2015-11-13 15:52:01+01:00 [ 
      bill_duration] => 48 
      [billed_duration] => 60 
      [call_direction] => inbound 
      [call_duration] => 48 
      [call_uuid] => b2d3de5d-a047-4409-9f7a-825373c38f0a 
      [end_time] => 2015-11-13 15:52:48+01:00 
      [from_number] => 3300000000 
      [initiation_time] => 2015-11-13 15:52:00+01:00 
      [parent_call_uuid] => 
      [resource_uri] => /v1/Account/xxx/Call/b2d3de5d-a047-4409-9f7a-825373c38f0a/ 
      [to_number] => 3300000000 
      [total_amount] => 0.00500 
      [total_rate] => 0.00500) 
     ... 

在[元]数组,我需要的[TOTAL_COUNT]值和[对象]数组,我想获得的所有值disaply他们排成一排(每个对象是一个新的行)。

我已经尝试foreach内部或访问数据与$响应[0] [0] [0]但没有任何做。

如果有人可能会导致我的解决方案...

非常感谢!

+0

这是'的foreach($响应 - >对象作为$ key => $ object)'那么你可以使用例如'$ object-> answer_time' –

回答

0

您可以通过$response['response']['meta']访问元阵列。从您的阵列中可以看到,response和meta都是键,total_count也是。因此,访问总数由$response['response']['meta']['total_count']完成。

为了然后遍历所有对象,简单地做

foreach ($response['response']['objects'] as $object) { 
    print_r($object); 
} 

您也可以单独使用数组键访问对象的每个属性:

foreach ($response['response']['objects'] as $object) { 
    echo $object['answer_time']; 
    echo $object['bill_duration']; 
    echo $object['billed_duration']; 
    echo $object['call_direction']; 
    echo $object['call_duration']; 
    echo $object['call_uuid']; 
    echo $object['end_time']; 
    echo $object['from_number']; 
    echo $object['initiation_time']; 
    echo $object['parent_call_uuid']; 
    echo $object['resource_uri']; 
    echo $object['to_number']; 
    echo $object['total_amount']; 
    echo $object['total_rate']; 
} 
+0

我怎样才能得到$对象的值? – Dan

+0

您可以通过数组键访问它,例如'$ object ['billed_duration']'。要更新我的答案。 – Phroggyy

+0

完美!谢谢 !! – Dan

0

您可以对“COUNT_RECURSIVE”标志使用“count”功能。它计算'混合'变量内的所有项目。它也计算父元素。

count($array['objects'],COUNT_RECURSIVE); 

例如

$cibo = array(
     'frutta' => array('arancia', 'banana', 'mela'), 
     'verdura' => array('carota', 'zucchina', 'piselli') 
); 

echo count($cibo,COUNT_RECURSIVE); // output 8 
+0

添加一些解释 – Thamilan

+0

对不起,我是懒惰! :) –

0

首先,核实,如果$array是你数组的名字:

$response = $array["response"]; 

在[元]数组,我需要[total_count]的值为

echo $response["meta"]["total_count"]; 

和用于[对象]数组,我想获得的所有值以disaply它们成一排(每个对象都是一个新行)。

使用foreach()功能适用于所有对象:

foreach($response["objects"] as $object){ 
    print_r($object); 
} 
+0

第一部分工作:echo $ array [“response”] [“meta”] [“total_count”]; – Dan

+0

但不是foreach – Dan

+0

你看到了什么错误? – Ben