2015-07-21 114 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 ","; } 

}