通过数据库中的数组打印天数(名称)

时间:2015-06-20 12:12:58

标签: php arrays

我有一个类似于0,0,0,0,1,1,0的数组 - 这意味着一个条目选择了两天。时间是星期五和星期六。

如何更换" 1"这个数组的值是白天的? outpz必须是" Fr,Sa"? 抱歉我的英文不好:)

3 个答案:

答案 0 :(得分:1)

$days = array(0, 0, 0, 0, 1, 1, 0);
$dayNames = array("Mo", "Tu", "We", "Th", "Fr", "Sa", "Su");

$openDays = array_keys(
    array_filter(
        array_combine(
            $dayNames,
            $days
        )
    )
);

Demo

然后你可以简单地

echo implode(', ', $openDays);

答案 1 :(得分:0)

<?php
$days = array(0, 0, 0, 0, 1, 1, 0);
$dayNames = array("Mo", "Tu", "We", "Th", "Fr", "Sa", "Su");
$daysText = "";
for ($i = 0; $i < count($dayNames); ++$i) {
    if ($days[$i] === 1) {
        $daysText .= $dayNames[$i] . ", ";
    }
}
$daysText = rtrim($daysText, ", ");

echo $daysText;

答案 2 :(得分:0)

这是在php中执行此操作的众多方法之一。

   $days = array("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun");
   $flags= array(0,0,0,0,1,1,0);

    for($x=0; $x<count($days); $x++){
        if($flags[$x] == 1)
            echo $days[$x];
    }

这使用了并行数组的思想。通过标志迭代,如果它是1,基于该标志索引,在文本中打印相应的日期。