2013-03-10 62 views
0

我有一個包含多個對象的PHP數組。我試圖將某個鍵的值加入一個由逗號分隔的字符串中。 var_dump的輸出:將數組值加入字符串

Array 
(
    [0] => stdClass Object 
     (
      [tag_id] => 111 
      [tag_name] => thing 1 
      [tag_link] => url_1 
     ) 

    [1] => stdClass Object 
     (
      [tag_id] => 663 
      [tag_name] => thing 2 
      [tag_link] => url_2 
     ) 

) 

該字符串需要是$ string ='thing 1,thing 2'。我嘗試使用foreach循環,但我完全卡住了。任何人都可以幫忙嗎?

回答

4

以上的答案是一盞小燈,可能運行它作爲一個foreach循環來代替。

$names = array(); 
foreach ($array as $k => $v) { 
    $names[] = $v->tag_name; 
} 
$string = implode(',', $names); 
+0

真棒,謝謝! – Squrler 2013-03-10 21:57:41

0

嘗試,因爲這

$string = $array[0]->tag_name.','.$array[1]->tag_name; 

對於其他元素

$string = ''; 
foreach($array as $object) $string.=$object->tag_name.','; 
$string = substr($string,0,-1); 
+0

在這個例子中工作 – Sam 2013-03-10 21:07:05

+0

對不起,也許我應該在問題補充說,數組的大小確實是動態的像邁克爾提到。有什麼建議麼? – Squrler 2013-03-10 21:08:21

+0

我已經編輯:)現在試試,現在他也可以隨機刪除-1 – Sam 2013-03-10 21:09:24

0
$output = ''; 
foreach($test as $t){ 
    $output .= $t->tag_name . ','; 
} 
$output = substr($output, 0, -1); 
echo $output; 
+0

傑里米Blalock的答案更清潔:-) – 2013-03-10 21:09:09

0

使用這樣的事情:

implode(',', array_map(function ($el) { 
    return $el->tag_name; 
}, $array));