对于你们大多数人来说,这是一个很快的问题,我敢肯定,但是我正在试图教自己多维数组,我正在撞墙。
我只想检查$_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;
}
}
答案 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
}
}