duanhuo0577 2014-08-16 13:07
浏览 75
已采纳

PHP数组条件短语法

Here is what I have, I know I can rewrite my conditional syntax but I just wanted to see if there was something else I can do with what I have.

$sleeping[] = ($a->day_bed == 1) ? 'Day Bed' : false;
$sleeping[] = ($a->fold_up_bed == 1) ? 'Fold Up Bed' : false;
$sleeping[] = ($a->murphy_bed == 1) ? 'Murphy Bed' : false;
$sleeping[] = ($a->trundle_bed == 1) ? 'Trundle Bed' : false;

I'm trying to test for an empty array or not and rather than an empty array I get:

Array
(
    [0] => 
    [1] => 
    [2] => 
    [3] => 
)

This never registers as "empty". As far as I can tell I need the "else" syntax on there otherwise it fails.

Is there something else I can use besides NULL or FALSE? Or any other way to format it? I like this format because I have around 600 of these and it makes it much easier to read. Any suggestions?

  • 写回答

2条回答 默认 最新

  • dtrz99313 2014-08-16 13:10
    关注

    You'll have to change the format as the check for existence needs to happen before you push another element onto the array. This should work:

    if ($a->day_bed == 1) $sleeping[] = 'Day Bed';
    

    You can save yourself lots of work by automating this task, eg like this

    $bedTypes = array(
        "day_bed" => "Day Bed",
        "fold_up_bed" => "Fold up bed"
    );
    foreach ($bedTypes as $key=>$val) {
        if ($a->{$key} == 1)
            $sleeping[] = $val;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入
  • ¥20 XP系统在重新启动后进不去桌面,一直黑屏。
  • ¥15 opencv图像处理,需要四个处理结果图
  • ¥15 无线移动边缘计算系统中的系统模型
  • ¥15 深度学习中的画图问题
  • ¥15 java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条
  • ¥15 Python报错怎么解决
  • ¥15 simulink如何调用DLL文件
  • ¥15 关于用pyqt6的项目开发该怎么把前段后端和业务层分离
  • ¥30 线性代数的问题,我真的忘了线代的知识了