我有这个代码。基本上标识数组的任何位置是否为空或输入是否等于零。
$fields = array("first", "second", "third");
function check($fields, $form) {
foreach($fields as $field) {
if(empty($form[$field]) || $form[$field] === 0) {
echo 'empty';
return false;
break;
}
}
}
我现在怀疑的是,我怎么能做一个回声,例如显示第二个位置是空的?
用if? if ($form[$field][second])
?我不知道这是否正确,或者存在更好的选择
感谢
答案 0 :(得分:2)
如果$field
是您想要的echo
,那么只需将其添加到“空”:
$fields = array("first", "second", "third");
function check($fields, $form)
{
foreach($fields as $field)
{
if(empty($form[$field]))
{
echo $field.' is empty';
return false;
}
}
}
如果您需要索引值:
$fields = array("first", "second", "third");
function check($fields, $form)
{
foreach($fields as $k=>$field)
{
if(empty($form[$field]))
{
echo $k.' is empty';
return false;
}
}
}
最终如果目标是检索空位(如果check
返回-1
则没有空位置):
$fields = array("first", "second", "third");
function check($fields, $form)
{
foreach($fields as $k=>$field)
{
if(empty($form[$field]))
return $k;
}
return -1;
}
答案 1 :(得分:0)
你不能做以下事情:
if (empty($form[$field+1])) {
echo 'Empty';
}
答案 2 :(得分:0)
使用这样的递归函数:
function isEmpty($array){
if(is_array($array)){
foreach($array as $key=>$value){
if(isEmpty($value) !== false) return $key;
}
return false;
}else{
if($array === 0 || empty($array)){
return true;
}
}
}
这将遍历数组的深度,并返回找到空位置的索引,如果找不到空位则返回false。
答案 3 :(得分:-1)
也许我完全错了,但为什么不呢:
if(empty($form[2]) || $form[2] === 0) {
echo 'second element is empty';
}
如果你的问题是'我怎样才能知道我在做foreach
'时的指标,那么答案就是:
$fields = array("first", "second", "third");
function check($fields, $form) {
foreach($fields as $i => $field) {
if ( (empty($form[$field]) || $form[$field] === 0) && ($i == 2)) {
echo '2n element is empty';
return false; // no need to break; as you have returned something.
}
}
}