[英]Convert comma separated string with value to nested array
我收到 csv 數據作為單獨的字符串,我試圖將其轉換為嵌套的 arrays,然后是 json。
我收到的字符串是這樣的,最后一個元素是值。
$str1 = "name,firstname,Bob";
$str2 = "name,lastname,Dylan";
在這里,我需要將字符串轉換為嵌套的 arrays,這相當於下面的 arrays。 這是我正在努力的一點。
$arr1 = ["name" => ["firstname" => "Bob"]];
$arr2 = ["name" => ["lastname" => "Dylan"]];
然后我可以使用 array_merge_recursive 來組合它們
$merged = array_merge_recursive($arr1, $arr2);
之后我可以將合並的數組轉換為 json
將動態數量的字符串傳遞給循環。
解析逗號分隔值。
使用這些值將數據推送到數組結構中。
代碼:(演示)
$strings = ["name,firstname,Bob", "name,lastname,Dylan"];
$result = [];
foreach ($strings as $csv) {
[$level1, $level2, $value] = str_getcsv($csv);
$result[$level1][$level2] = $value;
}
var_export($result);
Output:
array (
'name' =>
array (
'firstname' => 'Bob',
'lastname' => 'Dylan',
),
)
或者更簡潔地說,您可以直接從數組解構步驟推送以獲得與上述相同的結果:( Demo )
$result = [];
foreach ($strings as $csv) {
[$level1, $level2, $result[$level1][$level2]] = str_getcsv($csv);
}
var_export($result);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.