我有以下字串:
$string = "[{"006":"BASIC"}, {"007":"ADV"}]";
我需要以下形式的最終陣列:
Array(
"006" => BASIC,
"007" => ADV
)
我做了如下骯臟的方式:
$string = ltrim($string, "[");
$string = rtrim($string, "]");
$string = explode(",", $string);
$arr1 = json_decode($string[0], true);
$arr2 = json_decode($string[1], true);
$arrFinal = array_merge($arr1, $arr2); //Final Array
這可以以更優化的方式完成嗎?
此外,原始的 $string 可以有多個逗號分隔的段,而不僅僅是兩個,如下所示->
$string = "[{"006":"BASIC"}, {"007":"ADV"}, {"008":"ADV"}, {"009":"SUPER"}]";
uj5u.com熱心網友回復:
正如我在給您的評論中指出的那樣,您的示例字串無效。此示例顯示 json 的有效字串版本。使用 json_decode,將第二個引數設定為 true,將嵌入的物件轉換為陣列元素。
您將獲得一個嵌入的陣列陣列,但您可以使用帶有 array_merge 的擴展運算子 (...) 輕松地將其展平。
<?php
$string = '[{"006":"BASIC"},{"007":"ADV"}]';
$r = json_decode($string, true);
$r = array_merge(...$r);
print_r($r);
輸出:
Array
(
[006] => BASIC
[007] => ADV
)
uj5u.com熱心網友回復:
$string = '[{"006":"BASIC"}, {"007":"ADV"}, {"008":"ADV"}, {"009":"SUPER"}]';
var_dump(json_decode($string, true));
die;
如果您需要加入 2 個陣列,那么您可以先對它們進行解碼然后合并它們。
$stringOne = '[{"006":"BASIC"}, {"007":"ADV"}]';
$stringTwo = '[{"008":"ADV"}, {"009":"SUPER"}]';
$finalArray = array_merge(json_decode($stringOne, true), json_decode($stringTwo, true));
var_dump(json_encode($finalArray));
die;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/434535.html
上一篇:替換不相等的嵌套串列中的字串
