在php中使用implode for stdClass对象

Afs*_*hin 9 php implode

foreach($categories as $category)
{
    print_r($category);
}
Run Code Online (Sandbox Code Playgroud)

上面的代码给出了以下结果.

stdClass Object
(
    [category_Id] => 4
    [category_Title] => cat 4
)
stdClass Object
(
    [category_Id] => 7
    [category_Title] => cat 7
)
stdClass Object
(
    [category_Id] => 6
    [category_Title] => cat 6
)
Run Code Online (Sandbox Code Playgroud)

我该如何使用implode(', ' )以获得以下结果:

猫4,猫7,猫6

我用它,但是我收到了一个错误

Mag*_*gus 22

您可以轻松地将其作为数组进行转换.大多数人似乎都跳过大学或C编程.

implode(',',(array) $categories); 
Run Code Online (Sandbox Code Playgroud)

如果你怀疑我检查这个线程将PHP对象转换为关联数组

  • 为什么你没有任何upvotes,这是最好的答案 (2认同)
  • 没有赞成因为1:迟到的回答,2:对我不起作用,3:他是一个吝啬的脸>:[ (2认同)
  • 哦,等一下它:D,好的竖起大拇指 (2认同)

Gui*_*ehn 16

这是一个替代解决方案,使用array_map:

$str = implode(', ', array_map(function($c) {
    return $c->category_Title;
}, $categories));
Run Code Online (Sandbox Code Playgroud)

  • @Magus你误解了这个问题.如果你仔细阅读,`$ categories`已经*是一个包含三个`stdClass`元素的数组,它们有两个属性:`category_Id`和`category_Title`.他问如何生成一个新的类别标题数组(字符串).只是将`$ categories`转换为数组是行不通的. (2认同)

Gau*_*164 5

试试像

foreach($categories as $category)
{
    $new_arr[] = $category->category_Title;
}
$res_arr = implode(',',$new_arr);
print_r($res_arr);
Run Code Online (Sandbox Code Playgroud)