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

如何在PHP中利用指定字符串创建多维数组?

实现PHP多维数组的方案

没问题,我来帮你把这段字符串转换成规整的多维数组,直接上可运行的代码,再给你拆解关键步骤:

// 你的原始字符串(假设$vars已经正确获取)
$vars = "Formaat : 60 cm | Kleur : century oak | Prijs: 45,00\\Formaat : 60 cm | Kleur : dark oak | Prijs: 45,00\\Formaat : 60 cm | Kleur : grey | Prijs: 45,00\\Formaat : 80 cm | Kleur : century oak | Prijs: 75,00\\Formaat : 80 cm | Kleur : dark oak | Prijs: 75,00\\Formaat : 80 cm | Kleur : grey | Prijs: 75,00";

// 按反斜杠拆分出每一条变体数据
$variabelebackslash = explode('\\', $vars);

// 初始化用来存储最终多维数组的变量
$productVariants = [];

// 遍历每一行变体数据
foreach ($variabelebackslash as $line) {
    // 跳过空行(避免拆分后产生的空元素干扰)
    if (trim($line) === '') {
        continue;
    }
    
    // 按|拆分当前行的各个属性(尺寸、颜色、价格)
    $attributeItems = explode('|', $line);
    $singleVariant = [];
    
    // 遍历每个属性,拆分键和值
    foreach ($attributeItems as $item) {
        // 用explode的第三个参数限制拆分次数,防止值里出现冒号(虽然这里没有,但更健壮)
        list($key, $value) = array_map('trim', explode(':', $item, 2));
        // 把整理好的键值对存入单个变体数组
        $singleVariant[$key] = $value;
    }
    
    // 将单个变体数组加入最终的多维数组
    $productVariants[] = $singleVariant;
}

// 打印结果查看(前端用<pre>标签格式化输出)
echo '<pre>';
print_r($productVariants);
echo '</pre>';

关键细节说明

  • 跳过空行:因为原始字符串末尾可能带有反斜杠,拆分后会产生空元素,用trim($line) === ''过滤掉,避免无效数据。
  • 限制拆分次数:用explode(':', $item, 2)确保只拆分键和值的部分,哪怕值里意外出现冒号也不会出错。
  • 清理空格:array_map('trim', ...)自动去掉键和值前后的多余空格,让数组结构更整洁。

运行这段代码后,你会得到一个结构清晰的多维数组,每个子数组对应一条产品变体的完整属性,比如:

Array
(
    [0] => Array
        (
            [Formaat] => 60 cm
            [Kleur] => century oak
            [Prijs] => 45,00
        )

    [1] => Array
        (
            [Formaat] => 60 cm
            [Kleur] => dark oak
            [Prijs] => 45,00
        )
    // 剩余变体数据以此类推
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:41:59