检查基本多维数组中的值

时间:2013-08-12 17:40:07

标签: php arrays multidimensional-array

对于你们大多数人来说,这是一个很快的问题,我敢肯定,但是我正在试图教自己多维数组,我正在撞墙。

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

目前这是有效的,我的其他声明(未显示)也是如此,但是必须有一种更清晰的方式来写这个?

非常感谢。

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;
    }
}

2 个答案:

答案 0 :(得分: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);
});

答案 1 :(得分: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
    }
}