微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

重新映射数组以在php中包含某些值

如何解决重新映射数组以在php中包含某些值

我有以下foreach

$temp = [];
    $remappedData=[];
    $intCurrentIndex = -1;

    foreach ($result as $value)
    {
        if(isset($temp[$value['Location']])){
            $oldindex = $temp[$value['Location']];
            $remappedData[$oldindex]['AptDate'][] = $value['AptDate'];
            $remappedData[$oldindex]['AptTime'][] = $value['AptTime'];
        }
        else{
            $temp[$value['Location']] = ++$intCurrentIndex;
            $remappedData[$intCurrentIndex]['location'] = $value['Location'];
            $remappedData[$intCurrentIndex]['AptDate'][] = $value['AptDate'];
            $remappedData[$intCurrentIndex]['AptTime'][] = $value['AptTime'];
        }

    }

这将按位置及其aptDates和时间对所有数据进行排序。示例:

[
   {
      "location":"Location 1","AptDate":[
         "2020-09-17","2020-09-17","2020-09-18","2020-09-18"
      ],"AptTime":[
         "15:15","15:45","15:30","16:15","15:15","14:45","16:00","08:30","09:30","10:15","12:30","13:30","14:30","08:00","09:00"
      ]
   }
]

这按位置对它们进行排序,但是我试图保持这种格式,但还要在日期中加上时间。

 [
       {
          "location":"Location 1","AptDate": [
              "2020-09-17" : [
                   "15:15",],"2020-09-18" :[
                  "08:30","09:00"
               ]
           ]
       }
    ]

到目前为止,我没有尝试过。我添加了位置并检查是否设置了,但是它按每个合适的日期对它们进行排序,这不是我所需要的。
value now

试图在反应表中显示此消息,但我收到一条错误消息,说Cannot read property 'map' of undefined

const Cell = ({ cell }) => {
  return cell.row.original.AptDate.map((value,index) => (
      <span
          key={index}
          style={{ display: "grid",textAlign:"center",marginRight: index === 0 ? 8 : 0 }}
      >
      {value}
    </span>
  ));
};

尝试将其添加到这样的表中。

front end talbe

解决方法

根据您的前端,我们可以做什么。根据日期(例如星期一,星期二等)创建日期和时间数组。

我们可以通过以下代码获取一天的信息。

echo date('D',strtotime('2020-09-18'));

Output: Fri

我们将其作为密钥并相应地绑定数据及其时间。我们将生成诸如Fri_dateSat_date之类的键以及诸如Fri_timeSat_time之类的时间,您可以在每个工作日列中直接使用它们。

foreach ($result as $value)
{
    $strDay = date('D',strtotime($value['AptDate']));
    if(isset($temp[$value['Location']])){
        $oldIndex = $temp[$value['Location']];
        $remappedData[$oldIndex][$strDay. '_date'] = $value['AptDate'];
        $remappedData[$oldIndex][$strDay. '_time'][] = $value['AptTime'];
    }
    else{
        $temp[$value['Location']] = ++$intCurrentIndex;
        $remappedData[$intCurrentIndex]['location'] = $value['Location'];
        $remappedData[$intCurrentIndex][$strDay. '_date'] = $value['AptDate'];
        $remappedData[$intCurrentIndex][$strDay. '_time'][] = $value['AptTime'];
   }

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。