You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel合并多单元素数组并在Blade视图遍历显示问题

Laravel合并多数组并在Blade视图遍历展示

问题分析

你当前代码在循环中每次都会重新创建仅含单个用户名称的数组赋值给$result,导致最终传递到视图的$result只保留最后一次循环的结果,无法展示所有用户名称。需要先初始化空数组,在循环中逐个添加用户名称,最后合并去重。

修改后的Controller代码

public function index()
{
    $id = Auth::id();
    $login_ok = DB::table('users')->where('id',$id)->first();
    $id_tray = $login_ok->id_tray;
    $consumer_key = env('consumer_key');
    $consumer_secret = env('consumer_secret');
    $code = env('code');
    $api_address = env('api_address');

    $acesso = Http::post($api_address.'/auth', [
        'consumer_key' => $consumer_key,
        'consumer_secret' => $consumer_secret,
        'code' => $code
    ]);
    $token = $acesso["access_token"];
    $response = Http::get($api_address.'/orders', [
        'access_token' => $token,
        'partner_id' => $id_tray,
    ]);
    $pedidos = $response["Orders"];
    
    // 初始化空数组存储所有用户名称
    $result = [];
    foreach ($pedidos as $pedido) {
        $id_pedidos = $pedido['Order']['customer_id'];
        $cliente = Http::get($api_address.'/customers/'.$id_pedidos, [
            'access_token' => $token,
            ':id' => $id_pedidos,
        ]);
        $usuario = $cliente['Customer']['name'];
        // 将用户名称追加到数组
        $result[] = $usuario;
    }
    // 去重并重新索引数组(若需要从1开始索引可手动调整,默认0开始不影响展示)
    $result = array_values(array_unique($result));

    return view('pages.minhas-vendas',compact('id','pedidos','result'));
}

修改后的Blade视图代码

避免循环变量与数组变量重名,防止覆盖:

@foreach ($result as $name)
    <td>{{ $name }}</td>    
@endforeach

关键说明

  1. 先初始化$result为空数组,而非循环内每次创建新数组;
  2. 用$result[] = $usuario将每个用户名称追加到数组末尾;
  3. array_unique()去除重复名称,array_values()重新索引数组;
  4. 视图循环变量改用$name,避免与数组变量$result冲突。

内容的提问来源于stack exchange,提问作者Jhow Costa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 17:13:37