0

我敢肯定,对于大多数人来说,这将是一个快速的过程,但我正在努力自学多维数组。

我只是想检查是否$_FILES["Photo"]["name"]包含空字符串,并且执行 if 语句下面的代码。

目前这有效,就像我的 else 声明(未显示)一样,但是必须有一种更清洁的方式来编写这个?

非常感谢。

if (empty($_FILES["Photo"]["name"][0]) && empty($_FILES["Photo"]["name"][1]) && empty($_FILES["Photo"]["name"][2])) {

    $query = "INSERT INTO lot (lotnumber, lottitle, lotdescription, datecreated, lastmodified) VALUES" . 
        "('$lotnumber', '$lottitle', '$lotdescription', NULL, NULL)";

    if (!$mysqli->query($query)) {
        echo '<p class="warning">Error executing INSERT query: (' . $mysqli->errno . ') ' . $mysqli->error . "</p>";
    }
    else
    {
        echo '<p class="success">The lot has been added to the directory.' . "</p>" . HTML_LINEBREAK;
    }
}
4

2 回答 2

2

您可以使用array_filter(),但我并没有真正看到您正在做的事情的问题:

$test_array = array_filter($_FILES['Photo']['name'], function($var) {
    return empty($var);
});

if (count($test_array) === 3) {
   $query = ... // the rest of your code
}

当然,这假设数组中只有三个元素。如果您只想检查前 3 个元素,则需要添加array_slice()如下内容:

$test_array = array_filter(array_slice($_FILES['Photo']['name'], 0, 3), function($var) {
    return empty($var);
});
于 2013-08-12T17:50:36.003 回答
1

我会有一个脚本来计算“名称”级别内的键。

$count = sizeof($name_of_array->Photo->name);

然后在 for 循环中检查键是否为空。

for($i = 0; $i <= $count; $i++)
{
    if(empty($name_of_array->Photo->name[$i])
    {
        ... continue code
    }
    else
    {
        ... continue code
    }
}
于 2013-08-12T17:48:01.217 回答