我有一张星期表
day_id | Day
----------------------
1 | Monday
2 | Tuesday
3 | Wednesday
4 | Thursday
5 | Friday
6 | Saturday
7 | Sunday
这里我将这个表用于多个用户作为员工的工作日,我希望使用此数组的子集来存储每个用户配置文件。是否还有其他解决方案implode(day_id)
答案 0 :(得分:2)
该表完全没必要。
一个想法是想象每个工作日的一个明智的表示,其中:
Monday = 1
Tuesday = 2
Wednesday = 4
Thursday = 8
Etc
每天的组合可以用1到127之间的单个数字表示。
有关更全面的解释,请参阅Working with bitcode
答案 1 :(得分:0)
使用功能日
如果$ is_number = true则返回第天其他名称日。
function days($is_number = true)
{
$days = array();
$day_number = date("D", time());
$day = array(
'Mon' => 2 /* 'Monday' */,
'Tue' => 3 /* 'Tuesday' */,
'Wed' => 4 /* 'Wednesday' */,
'Thu' => 5 /* 'Thursday' */,
'Fri' => 6 /* 'Friday' */,
'Sat' => 0 /* 'Saturday' */,
'Sun' => 1 /* 'Sunday' */,
);
$day_name = array(
2 => 'Monday',
3 => 'Tuesday',
4 => 'Wednesday',
5 => 'Thursday',
6 => 'Friday',
0 => 'Saturday',
1 => 'Sunday',
);
$number = isset($day[$day_number]) ? intval($day[$day_number]) : FALSE;
if($is_number)
return $number;
return isset($day_name[$number]) ? $day_name[$number] : FALSE;
}
答案 2 :(得分:0)
试试这个逻辑
function sub_array(array $haystack, array $needle)
{
return array_intersect_key($haystack, array_flip($needle));
}
$myArray = array(
'Monday'=> 1,
'Tuesday'=> 2 ,
'Wednesday'=> 3 ,
'Thursday'=> 4 ,
'Friday'=> 5
);
$keys = array(
'lettuce',
'tomato'
);
$ret = sub_array($myArray, $keys);
var_dump($ret);