获取php数组中的所有值

时间:2015-07-21 17:55:03

标签: php arrays

我有以下数组:

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]。如何通过上面的示例中的逗号分隔两个值?如有任何帮助,请提前感谢!!

7 个答案:

答案 0 :(得分:5)

这应该适合你:

首先将列添加到包含array_column()的数组中,然后您可以简单地implode()此数组,例如

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

通过array_column获取名称并通过implode获取cobde

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

答案 3 :(得分:0)

尝试使用'businesstype'值循环到数组位置:

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

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

答案 4 :(得分:0)

我喜欢array_column(),但为了完整起见,只需foreach()

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

或添加到数组implode()

答案 5 :(得分: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'])); 

答案 6 :(得分: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 ","; }

}