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

如何移除数组索引?PHP数组转JSON时去除0、1、2键名需求

解决PHP数组转JSON时去除数字索引的问题

我来帮你搞定这个需求,其实核心就是确保你的子数组在转JSON时是以数组形式输出,而不是带数字键的对象。下面分步骤给你讲具体实现:

1. 理解问题本质

你手里的PHP数组本身就是索引数组(0、1、2作为键),但如果直接转JSON时出现了带数字键的对象,大概率是数组索引不连续导致的。我们需要把它转换成连续索引的纯数组,这样json_encode就会输出无键名的JSON数组。

2. 处理PHP数组

用array_values()函数可以重置数组的索引,提取所有子数组的值并重新建立从0开始的连续索引,这样就相当于“移除”了原来的数字索引,让子数组直接包含在主数组里。

示例代码:

// 你的原始购物车数组
$originalCart = [
    [
        'cart_id' => 71,
        'product_id' => 33,
        'u_id' => 7,
        'size' => 'medium',
        'color' => 'blue',
        'quantity' => 1,
        'vendor_id' => 4,
        'country_id' => 1,
        'product_category' => 1,
        'product_name' => 'Black Dress',
        'short_description' => 'Flying Doll Black Dress',
        'detail_description' => 'lorem ipsum',
        'price' => 2000,
        'special_price' => 2000
    ],
    [
        'cart_id' => 74,
        'product_id' => 37,
        'u_id' => 7,
        'size' => 'medium',
        'color' => 'blue',
        'quantity' => 1,
        'vendor_id' => 4,
        'country_id' => 1,
        'product_category' => 3,
        'product_name' => 'Pink Skirt',
        'short_description' => 'Lady Shop Skirt combo',
        'detail_description' => 'lorem ipsum',
        'price' => 3000,
        'special_price' => 2100
    ],
    [
        'cart_id' => 72,
        'product_id' => 46,
        'u_id' => 7,
        'size' => 'medium',
        'color' => 'blue',
        'quantity' => 2,
        'vendor_id' => 4,
        'country_id' => 1,
        'product_category' => 1,
        'product_name' => 'Chirag',
        'short_description' => 'Hello guys',
        'detail_description' => 'How r u',
        'price' => 200,
        'special_price' => 120
    ]
];

// 重置数组索引,确保是连续的纯索引数组
$processedCart = array_values($originalCart);

3. 生成符合要求的JSON输出

把处理后的数组放到响应的data字段里,然后输出JSON即可:

// 构建响应结构
$response = [
    'data' => $processedCart
];

// 设置响应头并输出JSON
header('Content-type: application/json');
echo json_encode($response);

4. 最终JSON效果

生成的JSON会是这样的,data字段下是纯数组,没有0、1、2这些键名:

{
    "data": [
        {
            "cart_id": 71,
            "product_id": 33,
            "u_id": 7,
            "size": "medium",
            "color": "blue",
            "quantity": 1,
            "vendor_id": 4,
            "country_id": 1,
            "product_category": 1,
            "product_name": "Black Dress",
            "short_description": "Flying Doll Black Dress",
            "detail_description": "lorem ipsum",
            "price": 2000,
            "special_price": 2000
        },
        {
            "cart_id": 74,
            "product_id": 37,
            "u_id": 7,
            "size": "medium",
            "color": "blue",
            "quantity": 1,
            "vendor_id": 4,
            "country_id": 1,
            "product_category": 3,
            "product_name": "Pink Skirt",
            "short_description": "Lady Shop Skirt combo",
            "detail_description": "lorem ipsum",
            "price": 3000,
            "special_price": 2100
        },
        {
            "cart_id": 72,
            "product_id": 46,
            "u_id": 7,
            "size": "medium",
            "color": "blue",
            "quantity": 2,
            "vendor_id": 4,
            "country_id": 1,
            "product_category": 1,
            "product_name": "Chirag",
            "short_description": "Hello guys",
            "detail_description": "How r u",
            "price": 200,
            "special_price": 120
        }
    ]
}

小提示

如果你的原始数组本来就是连续的数字索引(像你给出的例子那样),其实array_values()这一步可以省略,但加上它能避免因为后续数组操作(比如删除元素)导致索引不连续的问题,让代码更健壮。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:12:27