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

Laravel中如何用foreach循环打印TLD及声明对应数组结构

在Laravel中处理该JSON数据的foreach循环方案

首先,我们先把你的JSON数据转换成Laravel中可用的格式,通常用json_decode()函数就能轻松搞定:

// 假设你的JSON字符串存在$json变量中
$jsonData = '{ "result": "success", "currency": { "id": "1", "code": "INR", "prefix": " ₹", "suffix": "INR", "format": "1", "rate": "1.00000" }, "pricing": { "in": { "categories": [ "ccTLD", "Geography" ], "addons": { "dns": true, "email": true, "idprotect": true }, "group": "", "register": { "1": "704.39" }, "transfer": { "1": "704.39" }, "renew": {} } } }';

// 转成关联数组(第二个参数传true),方便后续数组操作
$data = json_decode($jsonData, true);

一、用foreach循环打印TLD

这里的TLD指的是pricing对象下的各个键(比如示例里的in,对应.in域名后缀)。我们可以直接遍历$data['pricing']的键值对:

方式1:基于关联数组的遍历(推荐)

@foreach($data['pricing'] as $tld => $tldDetails)
    <p>当前TLD后缀:{{ $tld }}</p>
    <!-- 要是需要打印该TLD的详细信息,比如1年注册价 -->
    <p>1年注册价格:{{ $data['currency']['prefix'] . $tldDetails['register']['1'] }}</p>
@endforeach

方式2:基于对象格式的遍历

如果你没把JSON转成关联数组,而是保留原生对象格式(json_decode不传第二个参数),可以这么写:

$data = json_decode($jsonData);

@foreach($data->pricing as $tld => $tldDetails)
    <p>当前TLD后缀:{{ $tld }}</p>
    <p>1年注册价格:{{ $data->currency->prefix . $tldDetails->register->{'1'} }}</p>
@endforeach

二、通过foreach循环声明该数组结构

如果需要动态构建和示例结构一致的数组,我们可以用foreach循环来组装。比如假设你有一批TLD的基础数据,就可以这么做:

示例:动态生成完整结构数组

// 先初始化基础结构
$baseData = [
    'result' => 'success',
    'currency' => [
        'id' => '1',
        'code' => 'INR',
        'prefix' => ' ₹',
        'suffix' => 'INR',
        'format' => '1',
        'rate' => '1.00000'
    ],
    'pricing' => [] // 先留空,后续用foreach填充
];

// 模拟要添加的TLD数据列表(可以从数据库或接口获取)
$tldList = [
    'in' => [
        'categories' => ['ccTLD', 'Geography'],
        'addons' => ['dns' => true, 'email' => true, 'idprotect' => true],
        'group' => '',
        'register' => ['1' => '704.39'],
        'transfer' => ['1' => '704.39'],
        'renew' => []
    ],
    'com' => [ // 额外加一个TLD示例
        'categories' => ['gTLD'],
        'addons' => ['dns' => true, 'email' => false, 'idprotect' => true],
        'group' => 'General',
        'register' => ['1' => '800.00'],
        'transfer' => ['1' => '750.00'],
        'renew' => ['1' => '780.00']
    ]
];

// 通过foreach循环把TLD数据批量塞进pricing数组
foreach($tldList as $tld => $details) {
    $baseData['pricing'][$tld] = $details;
}

// 现在$baseData就和你提供的JSON结构完全一致了,也可以转成JSON输出查看
echo json_encode($baseData, JSON_PRETTY_PRINT);

要是在Blade模板里构建(较少见,但也可行)

// 假设控制器已经把$tldList传到了视图
@php
    $baseData = [
        'result' => 'success',
        'currency' => [
            'id' => '1',
            'code' => 'INR',
            'prefix' => ' ₹',
            'suffix' => 'INR',
            'format' => '1',
            'rate' => '1.00000'
        ],
        'pricing' => []
    ];

    foreach($tldList as $tld => $details) {
        $baseData['pricing'][$tld] = $details;
    }
@endphp

<!-- 可以输出格式化后的JSON查看结果 -->
<pre>{{ json_encode($baseData, JSON_PRETTY_PRINT) }}</pre>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:37:12