3 回答
TA贡献1890条经验 获得超9个赞
我将数据分为两个级别,$out即总体内容和$u每个单独的详细信息集(在每个循环中重置)。
请注意,在您将其分割为的内循环上=,这将返回一个键和一个值。这用于设置关联数组,而不仅仅是将每个值添加到数组中。
$array = explode(';|',$str);
$array = array_filter($array);
$out = [];
foreach($array as $key => $val)
{
$u = [];
$v = explode(";",$val);
foreach($v as $v1)
{
list($key, $value) = explode("=",$v1);
$u[$key] = $value;
}
$out[] = $u;
}
echo json_encode($out);
TA贡献1911条经验 获得超7个赞
因为第二个爆炸为您提供了类似“ KEY = VALUE”的对,所以第三个爆炸已经为您提供了所需的条件:KEY和VALUE。无需循环运行,您可以使用列表一次提取两个值
<?php
$str='ID=62981155;IT=OV80419674-62981155_1_3;OD=15.4;|ID=62981157;IT=OV80419674-62981157_1_3;OD=3.1;|ID=62981159;IT=OV80419674-62981159_1_3;OD=8.13;|';
$array = explode(';|', $str);
$u = [];
foreach($array as $key => $val)
{
if (empty($val)) {
continue;
}
$tmp = [];
foreach(explode(";", $val) as $v1)
{
list($k, $s) = explode("=", $v1);
$tmp[$k] = $s;
}
$u[] = $tmp;
}
echo json_encode($u);
此打印
[{“ ID”:“ 62981155”,“ IT”:“ OV80419674-62981155_1_3”,“ OD”:“ 15.4”},{“ ID”:“ 62981157”,“ IT”:“ OV80419674-62981157_1_3”,“ OD “:” 3.1“},{” ID“:” 62981159“,” IT“:” OV80419674-62981159_1_3“,” OD“:” 8.13“}]
- 3 回答
- 0 关注
- 158 浏览
添加回答
举报