簡體   English   中英

用逗號分隔的字符串制作成對數組

[英]Make Pairwise array from comma separated string

假設我有一個逗號分隔的字符串,如下所示:

1,Sunday,2,Monday,3,Tuesday,4,Wednesday,5,Thursday,6,Friday,7,Saturday

如何在PHP中使其成對排列,如下所示-

array
(
  [1] => Sunday,
  [2] => Monday,
  [3] => Tuesday,
  [4] => Wednesday,
  [5] => Thursday,
  [6] => Friday,
  [7] => Saturday,
);

簡單的答案(需要PHP> = 5.5.0):如果不需要在每個值的末尾添加逗號

$string = '1,Sunday,2,Monday,3,Tuesday,4,Wednesday,5,Thursday,6,Friday,7,Saturday';

$data = array_chunk(
    explode(',', $string),
    2
);
$newArray = array_combine(
    array_column($data, 0),
    array_column($data, 1)
);
var_dump($newArray);

如果確實需要結尾逗號,則可以添加:

array_walk(
    $newArray,
    function(&$value) {
        $value .= ',';
    }
);

如果您擁有諸如工作日和工作日數字之類的靜態數據,那么僅使用靜態數組無疑是最簡單的:

$weekdays = array(
    1 => 'Sunday',
    2 => 'Monday',
    3 => 'Tuesday',
    4 => 'Wednesday',
    5 => 'Thursday',
    6 => 'Friday',
    7 => 'Saturday',
);

如果必須解析逗號分隔的字符串,則可以使用以下命令:

$string = '1,Sunday,2,Monday,3,Tuesday,4,Wednesday,5,Thursday,6,Friday,7,Saturday';
$parts = explode(',', $string);
$weekdays = array();

for ($i = 0; $i < count($parts); ) {
    $weekdays[$parts[$i]] = $parts[++$i];
    ++$i;
}

print_r($weekdays);

輸出:

Array
(
    [1] => Sunday
    [2] => Monday
    [3] => Tuesday
    [4] => Wednesday
    [5] => Thursday
    [6] => Friday
    [7] => Saturday
)

它不是很漂亮,但是可以完成:)。

這會為您工作。

$string = '1,Sunday,2,Monday,3,Tuesday,4,Wednesday,5,Thursday,6,Friday,7,Saturday.';
$dtd = explode(',', $string);
$array = array();
$i = 1;
foreach ($dtd as $key => $value){
    if($key % 2 == 1){
        $array[$i++] = $value;
    }
}

print_r($array);//Array ( [1] => Sunday [2] => Monday [3] => Tuesday [4] => Wednesday [5] => Thursday [6] => Friday [7] => Saturday. )

暫無
暫無

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

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