2013-03-10 64 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));