我想从数据库列创建只有value = 1且skip = 0的数组。我从星期一到星期日的列日是列。它们的值可能为1或0.
$dr = $this->mdokter->daftarDokter($bag);
foreach($dr as $d) {
if($d['monday'] == 1) {
$data[$no]['jadwal'] = "Monday";
}
if($d['tuesday'] == 1) {
$data[$no]['jadwal'] .= "Tuesday";
}
if($d['wednesday'] == 1) {
$data[$no]['jadwal'] .= "Wednesday";
}
if($d['thursday'] == 1) {
$data[$no]['jadwal'] .= "Thursday";
}
if($d['friday'] == 1) {
$data[$no]['jadwal'] .= "Friday";
}
if($d['saturday'] == 1) {
$data[$no]['jadwal'] .= "Saturday";
}
if($d['sunday'] == 1) {
$data[$no]['jadwal'] .= "Sunday";
}
}
上面的代码只生成数据而不是逗号而不是数组。
如何从只有value = 1的数组创建数组。我想在$jadwal
变量中收集数组。例如$ jadwal = array(" Monday"," Thursday"," Saturday");
答案 0 :(得分:0)
您可以通过不同方式解决此问题:
首先:将其直接保存到数组中:要实现此目的,您必须将$data[$no]['jadwal'] = "Monday";
更改为$data[$no]['jadwal'][] = "Monday";
。现在$ data数组中的字段jadwal本身就是一个数组,而不是字符串。括号是array_push的简写。所以星期一将被推到jadwal数组。对其他行重复此更改,您将在结尾处获得一系列天数,其中数据库字段等于1
。
另一种方法:创建一周中所有名称的数组,并使用数据库中的结果过滤此数组:
$jadwal = ['monday', 'tuesday', 'wednesday', ...];
$jadwal = array_filter($jadwal, function($day) use($d) { return $d[$day]==1; });
这两行代替了上面的所有行。
如果您需要大写的第一个字母,请使用ucfirst