php - 如何爆炸以下字符串
问题描述
我如何爆炸以下字符串
$str = "ProductId=123, Name=Ancient Roots, Modern Pursuits, Country=India, City=Bangalore, Price=3368"
这样输出数组将包含
[
"ProductId" => "123",
"Name" => "Ancient Roots, Modern Pursuits",
"Country" => "India",
"City" => "Bangalore",
"Price" => "3368"
]
我试图用“逗号”爆炸,然后每个元素再次爆炸“等于”。
$arr = explode(",", $str);
然后再次
$prodarr = explode("=", $arr[0]);
$product["ProductId"] = $prodarr[1]
但是当值中存在另一个逗号时面临问题,例如名称“Ancient Roots,Modern Pursuits”
解决方案
您的结构非常脆弱,无法破坏。但是你仍然可以尝试解析它。
先爆开=
。您将拥有下一个键和当前值。
然后循环这些并展开,
并选择下一个键的最后一个元素和所有以前的部分作为值(样本):
<?php
$str = "ProductId=123, Name=Ancient Roots, Modern Pursuits, Country=India, City=Bangalore, Price=3368";
$chunks = explode('=', $str);
$keys = [];
$values = [];
foreach ($chunks as $i => $chunk) {
$parts = explode(',', $chunk);
if ($i != count($chunks) - 1) {
$keys[] = trim(array_pop($parts));
}
if ($i != 0) {
$values[] = implode(',', $parts);
}
}
var_dump(array_combine($keys, $values));
推荐阅读
- c# - 尝试将数据从 SDF 数据库加载到 C#
- node.js - 使用自动增量键但没有主键的 Sequelize 模型
- swift - 如何将 Nil 添加到 UIAlertAction
- javascript - 如何在位置固定的div下放置元素?
- python - Pandas:使用多个条件设置 var
- python - 多态性和 with 语句
- flowchart - 如何对齐美人鱼流程图节点中的文本?
- c# - ASP.Net Web API 和 CosmosDB。无法弄清楚如何在另一个服务类中使用一个服务类
- python - 当我导入我的个人库时,pd.DataFrame 上的简单求和函数需要永远
- python-3.x - 有没有办法拥有动态类?一个构造函数,给定数据状态,自动水合不同的类?