2013-07-30 52 views
0

我取的Facebook用户的工作历史,当我print_r,我得到一个这样的数组:如何打印指定数组值

Array (
    [work] => Array (
     [0] => Array (
      [employer] => Array (
       [id] => 111178415566505 
       [name] => Liputan 6 SCTV 
      ) 
    ) [1] => Array (
      [employer] => Array (
       [id] => 107900732566334 
       [name] => SCTV 
      ) 
     ) 
    ) 
    [id] => 502163984 
) 

我怎么只显示来自name价值,所以输出将是这样的:

Liputan 6 SCTV 
SCTV 

我用foreach,但总是错误总是会发生的。

+4

类似'$ your_variable ['work'] [0] ['employer'] ['name']'? – machineaddict

回答

1

试试这个:

foreach ($array['work'] as $arr) { 
    echo $arr['employer']['name']."<br>\n"; 
} 

这是假设你的数据是这样的:

$array = array(
    'work' => array(
     array(
      'employer' => array('id' => 111178415566505, 'name' => 'Liputan 6 SCTV'), 
     ), 
     array(
      'employer' => array('id' => 107900732566334, 'name' => 'SCTV'), 
     ), 
    ), 
    'id' => 502163984, 
); 
0

我认为$arr工作历史阵列。您可以使用for然后将数组是这样的:

for($i=0, $records = count($arr['work']); $i < $records; $i++) { 
    echo $arr['work'][$i]['employer']['name'] ."<br>"; 
} 

使用foreach

foreach($arr['work'] as $works) { 
    echo $works['employer']['name'] ."<br>"; 
} 
1

比如你的数组变量名称为$测试,那么你可以通过

$test['work'][0]['employer']['name'] 

得到name值您可以使用预标签检查您的阵列结构,如

echo '<pre>';print_r($test); 
0
foreach ($your_array as $your_array_item) 
{ 
    echo $your_array_item['work'][0]['employer']['name'] . '<br>'; 
} 
0
$count=count($array); 

for($i=0,$i<=$count;$i++){ 
echo $array['work'][$i]['employer']['name']; 
} 

这会运行动态..

+0

条件应该是'$ i <$ count'。 – som

+0

不正确! – TomPHP

0
foreach ($array['work'] as $val_arr) { 
    echo $val_arr['employer']['name']."<br />"; 
} 
1

您可以使用array_reduce,内爆,和关闭(PHP 5.3+)来做到这一点。

echo implode("<br/>", array_reduce($array["work"], 
    function(&$arr, $v){ 
     $arr[] = $v["employer"]["name"]; 
    },array() 
)); 
+0

这很可能是解决这个问题最复杂的方式,但它的乐趣。 – Orangepill