检查数组多维数组是否包含值


checking array multidimensional array contains value or not

我的多维数组是

Array (    
            [0] => Array ( 
                       [questionID] => 47
                       [surveyID] => 51
                       [userID] => 31 
                       [question_Title] => Choose Any One? 
                       [question_Type] => Dropdown 
                       [response] => 1.Android 2.Windows 3.Blackberry 
                       [required] => 0 
                       [add_time] => 0
            )
            [1] => Array ( 
                       [questionID] => 48 
                       [surveyID] => 51 
                       [userID] => 31 
                       [question_Title] => Is it? 
                       [question_Type] => Bigbox 
                       [response] => Yes No 
                       [required] => 1 
                       [add_time] => 0 
            )    
        )

然后使用foreach循环提交每个值并将其插入MySQL数据库但是如果数组中存在[required] => 1,我不想提交任何值

那么,如何检查天气整个阵列conatins〔required〕=>1

似乎一个足够简单的foreach循环就能完成任务:

foreach($mainArray as $miniArray)
{
    if($miniArray['required']==1)
    {
        // Do insert stuff here.
    }
}

或者,如果你想在输入它之前检查它是否存在于数组中的任意位置,一个简单的布尔值就可以了:

$hasRequired=false;
foreach($mainArray as $miniArray)
{
    if($miniArray['required']==1)
    {
        $hasRequired=true;
    }
}
if($hasRequired)
{
    // Do Insert Stuff here.
}

您可以使用array_filter:

$test_array = array(
    array(
        "required"=>0,
        "other_field"=>"value"
    ),
    array(
        "required"=>0,
        "other_field"=>"value"
    ),
    array(
        "required"=>0,
        "other_field"=>"value"
    ),
);
function checkIfRequired($var)
{
    return (is_array($var) && $var['required'] == 1);
}
if(sizeof(array_filter($test_array, "checkIfRequired"))){
    print 'required field exists';
}
else{
    print 'required field does not exist';
}

您可以使用is_array或in_array函数来检查数组的值。但是is_array函数比in_array更快、更准确。下面是php手册中的一个例子。此函数将检查整个数组。

    function myInArray($array, $value, $key){
//loop through the array
foreach ($array as $val) {
  //if $val is an array cal myInArray again with $val as array input
  if(is_array($val)){
    if(myInArray($val,$value,$key))
      return true;
  }
  //else check if the given key has $value as value
  else{
    if($array[$key]==$value)
      return true;
  }
}
return false;

}