我必须检查索引为0的子数组中带有键2,3,4,5的项是否为空。如果为空,我需要抛出异常。
如果不为空,则移至下一次迭代,使用索引1在子数组中使用键3,4,5,6检查项目,依此类推。
带有键0和1的项目将始终为空,因此无需使用它们。
因此,请检查包含键>的项目1然后4-4对检查是否有人是空的然后抛出异常。 这是我的代码
$array = array(
array('0' => '','1' => '','2' => 'Wasatch standard','3' => 'Wasatch standard','4' => '3,5,2','5' => 'English','6' => '','7' => '','8' => ''),
array('0' => '','1' => '','2' => '','3' => 'ThisIsAtest','4' => 'Wasatch standard1','5' => '3,4,5','6' => 'English','7' => '','8' => ''),
array('0' => '','1' => '','2' => '','3' => '','4' => 'Wasatch standard1.1','5' => 'Wasatch standard1.1','6' => '2','7' => 'Mathematics','8' =>''),
);
for($i=0;$i<count($array);$i++){
checkRecursivelyIfEmpty($array[$i],array('2'+$i,'3'+$i,'4'+$i,'5'+$i));
}
function checkRecursivelyIfEmpty($value,$sumValue){
foreach ($sumValue as $k => $v) {
if(empty($value[$v])){
throw new Exception("Error Processing Request");
}
}
}
答案 0 :(得分:1)
以下函数首先检查输入是否确实是一个数组,然后检查索引是否为空。如果没有,那么它会引发异常。此外,它遍历数组以查看是否存在内部数组。如果是这样,那么它也会递归检查它们。在功能之后,可以快速演示使用情况。
function checkThings($inputArray, $subArray) {
//If it is not an array, it does not have the given indexes
if (!is_array($inputArray)) {
return;
}
//throws exception if one of the elements in question is not empty
foreach ($subArray as $key) {
if ((isset($inputArray[$key])) && (!empty($inputArray[$key]))) {
throw new Exception("My Exception text");
}
}
//checks for inner occurrences
foreach ($inputArray as $key => $value) {
if (is_array($inputArray[$key])) {
checkThings($inputArray[$key], $subArray);
}
}
}
//Calls checkThings for all elements
for ($index = 0; $index < count($myArray); $index++) {
checkThings($myArray[$index], array($index + 2, $index + 3, $index + 4, $index + 5));
}
答案 1 :(得分:0)
使用foreach
并使用empty($value)
foreach ($array as $key => $value) {
$value = trim($value);
if (empty($value))
echo "$key empty <br/>";
else
echo "$key not empty <br/>";
}
答案 2 :(得分:0)
假设数组名为$a
,您可以使用此代码。外循环遍历所有数组。内部循环从$i+2
迭代到$i+5
(在$i=0
的情况下,在子数组上得到2,3,4和5)。函数empty()
检查项是否已设置且不等于false
(例如,空字符串)。
for($i=0; $i<count($a); $++)
for($j=$i+2; $j<$i+6; $j++)
if(empty($a[$i][$j]))
//Raise an error!