2015-07-21 104 views
0

我有以下阵列:获得在PHP数组的所有值

Array 
(
    [id] => 1043847 
    [company] => Array 
     ( 
      [businesstype] => Array 
       ( 
        [0] => Array 
         ( 
          [id] => 6 
          [name] => Business Service Provider 
         ) 
        [1] => Array 
         (
          [id] => 8 
          [name] => Retailer 
         ) 
       ) 
     ) 
) 

我希望能够得到公司的价值 - > businesstype - >名称为所有阵列内businesstype所以它会显示像这样:

企业类型:商务服务提供商,零售商

现在,如果我这样做:

<?php echo($chamber_member['company']['businesstype']['name']); ?> 

什么也没有发生,如果我这样做:

<?php echo($chamber_member['company']['businesstype'][0]['name']); ?> 

我只得到了一个数组[0]。我怎样才能得到两个值由逗号分隔上面的例子?任何帮助表示感谢,提前谢谢!

+1

'的foreach($ chamber_member [ '公司'] [ 'businesstype']为$ a)回声$ A [0] [ '名称'] “”' – MaHDyfo

+0

这正是我所需要的一个小调整:foreach($ chamber_member ['company'] ['businesstype'] as $ a)echo $ a ['name']。“,”; –

+0

我发布它作为更好地帮助有这个问题的人的答案。你可以接受它。 – MaHDyfo

回答

1
foreach($chamber_member['company']['businesstype'] as $a) 
    $b[] = $a['name']; 
$result = implode(", ", $b); 
+1

以及最后剩下的东西','? – Viral

+0

这一个为我所需要的,我想我可能一直在使用implode建议不正确......但这很好,谢谢! –

+0

@Viral Thankyou提及。固定。 – MaHDyfo

0

取的名字由array_column和cobine由破灭

<?php echo implode(',', array_column($chamber_member['company']['businesstype'], 'name')); ?> 
5

这应该为你工作:

首先得到列到一个数组与array_column(),那么你可以简单implode()此阵,e.g。

echo implode(",", array_column($chamber_member["company"]["businesstype"], "name")); 
+0

它的作品(PHP 5> = 5.5.0) –

0

尝试循环到阵列中的位置与“businesstype的价值观:

for($i = 0; $i < count($chamber_member['company']['businesstype']); $i++){ 

    echo $chamber_member['company']['businesstype'][$i]['name'] . ', '; 
} 
0

我喜欢array_column()但对于完整性,只是foreach()

foreach($chamber_member['company']['businesstype'] as $array) { 
    echo $array['name']; 
} 

或者添加到一个数组和implode()

0

使用array_map()另一种解决方案: -

$arr=array 
(
    'id' => 1043847, 
    'company' => array 
     ( 
      'businesstype' => array 
       ( 
        array 
         ( 
          'id'=> 6 , 
          'name' => 'Business Service Provider' 
         ), 
        array 
         (
          'id' => 8, 
          'name' => 'Retailer' 
         ) 
       ) 
     ) 
); 

    echo $names = implode(',',array_map(function($person) { return $person['name']; },$arr['company']['businesstype'])); 
0

使用此。这个最佳答案..

$result=$chamber_member['company']['businesstype']; 
$last=end($result); 
for($i=0;$i<count($result);$i++) 
{ 
$b[$i] = $result[$i]['name']; echo $b[$i]; if($last!=$result[$i]['name']){ echo ","; } 

}