我正在寻找一个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