首页 > 解决方案 > 即使 foreach 数组为空,也可以在 php foreach 中运行代码块

问题描述

我有一个动态表单,它可以同时插入和更新。这对于更新现有数据很有效,但在插入数据时不起作用,因为$input_fields它是空的,所以会foreach引发错误并且表单字段不会显示。那么如何在foreachwhen$input_fields为空时运行代码?

   <?php foreach ($input_fields as $input_field) : ?>
            // some demo code below
            <div class="form-group">
                <label for="">Name</label>
                <input class="form-control field_name_input name" type="text" name="data[][name]" value="<?= $input_field['name'] ?>">
            </div>
            // some demo code below ends
   <?php endforeach; ?>

我之前尝试过下面的代码foreach

if(!$input_fields) {
    $input_fields = [];
}; 

和下面的代码foreach

foreach ((array)$input_fields as $input_field)

但这无济于事,因为第一个代码片段只是空数组,因此不会发生循环,而第二个几乎是同一件事。我希望你明白。

编辑 1: $input_fields 是我保存表单属性的数组。

标签: php

解决方案


使用默认条目代替空的默认数组:

if(!is_array($input_fields) || empty($input_fields)) {
    $input_fields = [
        [
            'name' => "Hubba Bubba"
            // and some more elements
        ]
    ];
}; 

推荐阅读