Laravel:数组转字符串

Laravel: Array to String

这是我获取子类别名称的代码。但问题是它以数组形式显示数据。

$couponCategory = Coupon::select('categories')->where('expiry_date', '>', $dt)->where('status', 1)->first();
$couponsCat = explode(',', $couponCategory);

$categoriesDetails = Category::select('category_name')->whereIn('id', $couponsCat)->whereNotIn('parent_id', [0, 0])->get()->toArray();
str_replace("'", "\'", json_encode($categoriesDetails));

echo "<pre>";
print_r($categoriesDetails);
die;

结果

Array
(
    [0] => Array
        (
            [category_name] => Casual T-Shirts
        )

    [1] => Array
        (
            [category_name] => Formal T-Shirt
        )

)

我也尝试将它转换成字符串,但输出结果是这样的

[{"category_name":"Casual T-Shirts"},{"category_name":"Formal T-Shirt"}]

我希望结果只显示名称 休闲 T 恤和正式 T 恤没有括号或字符串形式的任何内容

Laravel collections 很容易内爆:

echo $categoriesDetails->map->category_name->join(' ');

您可以使用 pluck 以基本数组格式获取您想要的字段:

$categoryNames = Category::whereIn('id', $couponsCat)
  ->whereNotIn('parent_id', [0, 0])
  ->pluck('name');

然后循环结果,使用 blade 或普通旧 PHP。

@foreach ($categoryNames as $name)
  {{ $name }}
@endforeach

foreach ($categoryNames as $name) {
  echo $name;
}