2014-09-23 88 views
0

我多维数组检查数组多维数组包含值或不

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 [需要] => 1

+1

你尝试过这么远吗?你是否搜索了这个问题?请参阅http://stackoverflow.com/questions/6661530/php-multi-dimensional-array-search?lq=1 – 2014-09-23 10:50:45

+0

谢谢@i惊慌的外星人 – 2014-09-23 10:52:20

+0

[检查联合数组包含值](http:// stackoverflow。 com/questions/25988258/check-associative-array-contains-value) – DaSourcerer 2014-09-25 07:22:56

回答

0

似乎简单的足够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. 
} 
+0

thanx @ Fluffehbut,但我的问题是使用foreach循环的 – 2014-09-23 10:56:46

+0

我提交每个值并将其插入到MySQL数据库中,但如果数组中存在[required] => 1我不想提交任何值? – 2014-09-23 10:57:30

+0

使用'array_filter'或2'foreach' – 2014-09-23 10:58:14

0

您可以使用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'; 
} 
0

您可以使用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; 

}