簡體   English   中英

使用簡單的索引字符串數組中的鍵創建關聯數組

[英]Creating an associative array with keys from a simple indexed array of strings

我有一個字符串數組,其格式為key: value如下所示:

Array
    (
         [0] => label: productlabel
         [1] => timezone: SDT
         [2] => price: 0.2225
         [3] => reserve: 60
    )

我需要創建一個關聯數組,其關鍵部分是數組元素索引,值部分是數組元素值,如下所示:

Array
    (
        [label] => productlabel
        [timezone] => SDT
        [price] => 0.22255
        [reserve] => 60
    )

有沒有更短的方法或函數可以創建此控件,或者我需要使用基本控制結構手動創建它?

映射陣列 分割上的值:然后使用array_column()來分配從分裂值和鍵:

$originalArray = [
    'label: productlabel',
    'timezone: SDT',
    'price: 0.2225',
    'reserve: 60',
];

$newArray = array_column(
    array_map(
        function($value) {
            return explode(': ',$value);
        },
        $originalArray
    ),
    1,
    0
);

var_dump($newArray);

根據:拆分每個,然后添加到新數組中

foreach($array as $value){   // loop the original array
  $split = explode(":",$value);  // split values based on : into 2 element array
  $array2[$split[0]] = $split[1];  // add to the new array, [key] = [value]
}

您可以創建一個新數組,並在設置$ key和$ value后分割為“:”。

$oldArray = [
    'label: productlabel',
    'timezone: SDT',
    'price: 0.2225',
    'reserve: 60',
];

$newArray = [];

foreach($oldArray as $pos) {
    list($key, $value) = explode(':', $pos);
    $newArray[$key] = $value;
}

如果將:轉換為= ,則字符串類似於.ini行,因此可以將其視為那樣。

$assoc = parse_ini_string(str_replace(': ', '= ', join("\n", $array)));

暫無
暫無

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

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