将字符串转换为多维数组以在php中计算日期

赫曼思·库玛

我有一个字符串如下

Mon[3,9] Tue[3,9] Wed[5,9] Thu[5,11] Fri[5,11] Sat[5,11] Sun[4,10]

我想将此字符串分解为多维数组,并将像Mon,Tue,Wed这样的日期存储为键,将方括号内的值存储为以下每一天的值,并以较小的数组访问每一天

Array
(
    [Mon] => [3,9]
    [Tue] => [3,9]
    [Wed] => [5,9]
    [Thu] => [5,11]
    [Fri] => [5,11]
    [Sat] => [5,11]
    [Sun] => [4,10]
)

使用下面的代码,我能够实现它,但是将诸如[3,9] or [5,11]字符串之类的值

    $atd = $utd = "";
    $dod = "20-12-2020";
    $daysArray = "Mon[3,9] Tue[3,9] Wed[5,9] Thu[5,11] Fri[5,11] Sat[5,11] Sun[4,10]";
    $days = array('Mon','Tue','Wed','Thu','Fri','Sat','Sun');
    preg_match_all("/\[[^\]]*\]/", $daysArray, $matches);
    $dayNum = $matches[0];
    $daysArray = array_combine($days , $dayNum);
    print_r($daysArray);
        
        $valArray = array();
        
        foreach($daysArray as $day=>$val){
            if($day == "Mon" || $day == "Tue"){
              $atd = date("d-m-Y", strtotime("+".$val[0]." days", $dod));
              $utd = date("d-m-Y", strtotime("+".$val[1]." days", $dod));
           }else if($day == "Sun"){
              $atd = date("d-m-Y", strtotime("+".$val[0]." days", $dod));
              $utd = date("d-m-Y", strtotime("+".$val[1]." days", $dod));
           }else if($day == "Wed"){
              $atd = date("d-m-Y", strtotime("+".$val[0]." days", $dod));
              $utd = date("d-m-Y", strtotime("+".$val[1]." days", $dod));
           }else{
              $atd = date("d-m-Y", strtotime("+".$val[0]." 5 days", $dod));
              $utd = date("d-m-Y", strtotime("+".$val[1]." days", $dod));
             }
            }
        } 

当我打印$valArray它是一个像下面这样的数组,这是非常糟糕的。

array(
   [0]=>[
   [1]=>4
   [2]=>,
   [3]=>1
   [4]=>0
   [5]=>]
);

请帮忙

里格斯愚蠢

我认为这是您想要的结果。

$str = 'Mon[3,9] Tue[3,9] Wed[5,9] Thu[5,11] Fri[5,11] Sat[5,11] Sun[4,10]';

$result = [];

$bits = explode(' ', $str); // explode on space between day names
foreach ( $bits as $bit) {
    $b = explode('[', $bit);    // $bit = Mon[3,9] 
    $b[1] = rtrim($b[1], ']');  // $b0 = Mon, B1 = 3,9] so trim off the last ]
    $result[$b[0]] = explode(',', $b[1]); // explode on , to get inner array
}
print_r($result);

结果

Array
(
    [Mon] => Array
        (
            [0] => 3
            [1] => 9
        )
    [Tue] => Array
        (
            [0] => 3
            [1] => 9
        )
    [Wed] => Array
        (
            [0] => 5
            [1] => 9
        )
    [Thu] => Array
        (
            [0] => 5
            [1] => 11
        )
    [Fri] => Array
        (
            [0] => 5
            [1] => 11
        )
    [Sat] => Array
        (
            [0] => 5
            [1] => 11
        )
    [Sun] => Array
        (
            [0] => 4
            [1] => 10
        )
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP将字符串转换为多维数组

来自分类Dev

PHP将目录的多维数组转换为字符串

来自分类Dev

PHP:将多维数组转换为字符串

来自分类Dev

将字符串数组转换为Double,然后在Swift中计算总和

来自分类Dev

将字符串数组转换为多维数组

来自分类Dev

多维数组将内部数组转换为字符串

来自分类Dev

将JSON(作为字符串)转换为多维数组

来自分类Dev

将多维数组转换为特定的字符串格式

来自分类Dev

将结果集转换为多维字符串数组

来自分类Dev

将json字符串转换为多维数组

来自分类Dev

将字符串转换为多维数组

来自分类Dev

将多维数组转换为字符串

来自分类Dev

将字符串转换为多维数组

来自分类Dev

如何让javascript将多维数组转换为字符串?

来自分类Dev

将字符串转换为等效的多维数组

来自分类Dev

将字符串转换为多维数组索引 Javascript

来自分类Dev

PHP / jQuery-如何将多维PHP数组转换为JSON字符串?

来自分类Dev

在PHP中将字符串转换为多维数组

来自分类Dev

在PHP中将字符串转换为多维数组

来自分类Dev

在PHP中将字符串转换为多维数组

来自分类Dev

PHP将多维多深度数组转换为字符串

来自分类Dev

PHP 将多维数组转换为用于 curl POST 的查询字符串

来自分类Dev

将日期字符串数组转换为日期

来自分类Dev

将日期字符串数组转换为日期

来自分类Dev

将字符串转换为以特定字符串为键的数组或多维数组

来自分类Dev

如何将多维int数组转换为多维字符串数组

来自分类Dev

PHP将日期转换为字符串字符

来自分类Dev

将字符串转换为数组中的日期对象

来自分类Dev

尝试将字符串数组转换为日期

Related 相关文章

热门标签

归档