如何使用PHP将工作日转换为二进制表示,反之亦然


How to convert weekdays to binary representation and vise versa using PHP

我正在寻找一个PHP类,它可以将工作日的任何组合转换为二进制,反之亦然

0(周日)至6(周六)

示例:

  • 周一、周二、周三、周四、周五=>0111110(其中周日和周六为休息日)

  • 0101010=>此二进制表示周一、周三、周五为ON其他为OFF天

该类应该能够将二进制转换为工作日,将工作日转换为二进制

该类可以有两种方法:

  • 公共函数convertWeekdaysToBinary($days)

    • 这将把未来几天(数组)转换为二进制(字符串)
  • 公共函数convertBinaryToWeekdays($binary)

    • 这个将把即将到来的二进制(字符串)转换为天(数组)

这是第一个:

$arr = array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
$search1 = "Monday, Tuesday, Wednesday, Thursday, Friday";
$search_arr = explode(", ", $search1);
$out1 = array("0","0","0","0","0","0","0");
foreach($search_arr as $value){
    $sr = array_search($value, $arr);
    $out1[$sr] = "1";
}
echo implode("", $out1); //0111110

反之亦然

$search2 = "0101010";
$search_arr = str_split($search2);
$out2 = array();
foreach($search_arr as $key => $value){
    if($value == 1){
        $out2[] = $arr[$key];
    }
}
echo implode(", ", $out2);//Monday, Wednesday, Friday