簡體   English   中英

從包含相關逗號分隔值的單元素關聯數組創建一個新的關聯數組

[英]Create a new associative array from a single-element associative array containing related comma-separated values

我正在嘗試從一個單元素關聯數組創建一個新的數組結構,其中鍵和值都是帶有相關數據的逗號分隔字符串。

我應該使用哪個數組 function 來執行此操作?

輸入數組:

[
  "id,zip,state,city,county,territory,price" => "1,90001,CA,Los Angeles,Los Angeles,Orange CA,40"
]

所需的 output:

[
    "id" => 1,
    "zip" => 90001,
    "state" => "CA",
    "city" => "Los Angeles",
    "county" => "Los Angeles",
    "territory" => "Orange CA",
    "price" => 40
]

"id,zip,state,city,county,territory,price"是一個鍵,不是多個鍵。 所以你必須把它們分開。

$old = ["id,zip,state,city,county,territory,price" => "1,90001,CA,Los Angeles,Los Angeles,Orange CA,40"];

$keys = explode(',', $key = array_key_first($old));
$values = explode(',', $old[$key]);
$new = array_combine($keys, $values);

array(7) {
  ["id"]=>
  string(1) "1"
  ["zip"]=>
  string(5) "90001"
  ["state"]=>
  string(2) "CA"
  ["city"]=>
  string(11) "Los Angeles"
  ["county"]=>
  string(11) "Los Angeles"
  ["territory"]=>
  string(9) "Orange CA"
  ["price"]=>
  string(2) "40"
}

幾乎與@Markus 相同,但key()可用於更多 php 版本。

代碼:(演示

$array = [
    "id,zip,state,city,county,territory,price" => "1,90001,CA,Los Angeles,Los Angeles,Orange CA,40"
];

$key = key($array);
var_export(
    array_combine(
        explode(',', $key),
        explode(',', $array[$key])
    )
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM