繁体   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