Php 检查基本多维数组中的值
我敢肯定,对你们大多数人来说,这将是一个快速的过程,但我正在努力自学多维数组 我只想检查Php 检查基本多维数组中的值,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我敢肯定,对你们大多数人来说,这将是一个快速的过程,但我正在努力自学多维数组 我只想检查$\u文件[“Photo”][“name”]是否包含空字符串,并且执行if语句下面的代码 目前这是可行的,就像我的else陈述(未显示)一样,但是必须有一种更干净的方式来写这篇文章 非常感谢 if (empty($_FILES["Photo"]["name"][0]) && empty($_FILES["Photo"]["name"][1]) && empty($_FILES[
$\u文件[“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;
}
}
if(空($\u文件[“照片”][“名称”][0])&&empty($\u文件[“照片”][“名称”][1])&&empty($\u文件[“照片”][“名称”][2])){
$query=“插入批次(lotnumber、LOTITLE、lotdescription、DATECEATED、lastmodified)值”。
“(“$lotnumber',$lottitle',$lotdescription',NULL,NULL)”;
如果(!$mysqli->query($query)){
echo“执行插入查询时出错:(“..mysqli->errno.”“..mysqli->Error.”;
}
其他的
{
echo“
该批次已添加到目录中。“
”。HTML\u LINEBREAK;
}
}
我会有一个脚本来计算“name”级别内的键数
然后在for循环中检查键是否为空
for($i = 0; $i <= $count; $i++)
{
if(empty($name_of_array->Photo->name[$i])
{
... continue code
}
else
{
... continue code
}
}
for($i=0;$i照片->名称[$i])
{
…继续代码
}
其他的
{
…继续代码
}
}
我会有一个脚本来计算“name”级别内的键数
然后在for循环中检查键是否为空
for($i = 0; $i <= $count; $i++)
{
if(empty($name_of_array->Photo->name[$i])
{
... continue code
}
else
{
... continue code
}
}
for($i=0;$i照片->名称[$i])
{
…继续代码
}
其他的
{
…继续代码
}
}
您可以使用数组过滤器()
,但我并不认为您所做的有什么问题:
$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\u slice()
,如下所示:
$test_array = array_filter(array_slice($_FILES['Photo']['name'], 0, 3), function($var) {
return empty($var);
});
您可以使用
数组\u过滤器()
,但我并不认为您所做的有什么问题:
$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\u slice()
,如下所示:
$test_array = array_filter(array_slice($_FILES['Photo']['name'], 0, 3), function($var) {
return empty($var);
});
如果使用
空($\u文件[“Photo”][“name”])
,显然没有什么问题。它确定变量是否为空。无论是string
还是array
@HashemQolami这是我的逻辑,这就是为什么我在使用空($\u FILES[“Photo”][“name”])跳过else语句时,即使数组是空的??是的,它是空的。看看这个:奇怪的是,一定是我做错了别的什么事。IFUseempty($\u FILES[“Photo”][“name”])
没有明显的问题。它确定变量是否为空。无论是string
还是array
@HashemQolami这是我的逻辑,这就是为什么我在使用空($\u FILES[“Photo”][“name”])跳过else语句时,即使数组是空的??是的,它是空的。看看这个:奇怪,一定是我做错了什么,我会调查这件事。。。还没有学会数组过滤器!!谢谢你或数组_slice()matterI将研究这一个。。。还没有学会数组过滤器!!感谢matterI没有尝试for循环。我确实尝试了foreach循环,但这只是在我的DB中添加了3行:)@SamHolguin这是另一种风格。此for循环将检查名称数组中的条目是否为空。这将消除硬编码名称[0]的使用,硬编码名称[0]的递增数字仅与名称数组中的键数(由$count确定)相同。此if语句应该是旧的else语句。如果名称不是空的,则else应该是您的常规代码。我将用它进行实验,现在是我学习循环的时候了!!许多的thanks@SamHolguin没问题!For循环非常适合这种情况。如果这对你有效,请接受这个答案:)祝你好运!我正在试验for循环……看看你的例子,这会不会像我的foreach循环那样导致多个代码插入???我还没有尝试过for循环。我确实尝试了foreach循环,但这只是在我的DB中添加了3行:)@SamHolguin这是另一种风格。此for循环将检查名称数组中的条目是否为空。这将消除硬编码名称[0]的使用,硬编码名称[0]的递增数字仅与名称数组中的键数(由$count确定)相同。此if语句应该是旧的else语句。如果名称不是空的,则else应该是您的常规代码。我将用它进行实验,现在是我学习循环的时候了!!许多的thanks@SamHolguin没问题!For循环非常适合这种情况。如果这对你有效,请接受这个答案:)祝你好运!我正在试验for循环……看看你的例子,这不会像我的foreach循环那样导致多个代码插入吗????