대형 배열에 있는 하위 배열의 각 요소에 sk_id가 비어 있는 8개의 연속 하위 요소가 있는 경우 이 하위 배열을 제거하세요. 데이터는 다음과 같이 인쇄됩니다.
<code>array(100) { [0] =array(88){ [0] => array(8) { ["email"] => string(19) "13537951319@163.com" ["sno"] => string(15) "106725097310815" ["class_id"] => string(3) "559" ["user_id"] => string(4) "6648" ["date_time"] => string(10) "1473159600" ["classname"] => string(15) "呵呵呵呵呵" ["sk_id"] => NULL ["num"] => int(0) } [1] => array(8) { ["email"] => string(19) "13537951319@163.com" ["sno"] => string(15) "106725097310815" ["class_id"] => string(3) "559" ["user_id"] => string(4) "6648" ["date_time"] => string(10) "1473150900" ["classname"] => string(15) "呵呵呵呵呵" ["sk_id"] => NULL ["num"] => int(1) } [2] => array(8) { ["email"] => string(19) "13537951319@163.com" ["sno"] => string(15) "106725097310815" ["class_id"] => string(3) "559" ["user_id"] => string(4) "6648" ["date_time"] => string(10) "1473147900" ["classname"] => string(15) "呵呵呵呵呵" ["sk_id"] => NULL ["num"] => int(2) } [3] => array(8) { ["email"] => string(19) "13537951319@163.com" ["sno"] => string(15) "106725097310815" ["class_id"] => string(3) "559" ["user_id"] => string(4) "6648" ["date_time"] => string(10) "1473144600" ["classname"] => string(15) "呵呵呵呵呵" ["sk_id"] => NULL ["num"] => int(3) } .... }, [1] =array(88){ [0] => array(8) { ["email"] => string(19) "13537951319@163.com" ["sno"] => string(15) "106725097310815" ["class_id"] => string(3) "559" ["user_id"] => string(4) "6648" ["date_time"] => string(10) "1473159600" ["classname"] => string(15) "呵呵呵呵呵" ["sk_id"] => NULL ["num"] => int(0) } [1] => array(8) { ["email"] => string(19) "13537951319@163.com" ["sno"] => string(15) "106725097310815" ["class_id"] => string(3) "559" ["user_id"] => string(4) "6648" ["date_time"] => string(10) "1473150900" ["classname"] => string(15) "呵呵呵呵呵" ["sk_id"] => NULL ["num"] => int(1) } [2] => array(8) { ["email"] => string(19) "13537951319@163.com" ["sno"] => string(15) "106725097310815" ["class_id"] => string(3) "559" ["user_id"] => string(4) "6648" ["date_time"] => string(10) "1473147900" ["classname"] => string(15) "呵呵呵呵呵" ["sk_id"] => NULL ["num"] => int(2) } [3] => array(8) { ["email"] => string(19) "13537951319@163.com" ["sno"] => string(15) "106725097310815" ["class_id"] => string(3) "559" ["user_id"] => string(4) "6648" ["date_time"] => string(10) "1473144600" ["classname"] => string(15) "呵呵呵呵呵" ["sk_id"] => NULL ["num"] => int(3) } .... } .... }</code>
대형 배열에 있는 하위 배열의 각 요소에 sk_id가 비어 있는 8개의 연속 하위 요소가 있는 경우 이 하위 배열을 제거하세요. 데이터는 다음과 같이 인쇄됩니다.
<code>array(100) { [0] =array(88){ [0] => array(8) { ["email"] => string(19) "13537951319@163.com" ["sno"] => string(15) "106725097310815" ["class_id"] => string(3) "559" ["user_id"] => string(4) "6648" ["date_time"] => string(10) "1473159600" ["classname"] => string(15) "呵呵呵呵呵" ["sk_id"] => NULL ["num"] => int(0) } [1] => array(8) { ["email"] => string(19) "13537951319@163.com" ["sno"] => string(15) "106725097310815" ["class_id"] => string(3) "559" ["user_id"] => string(4) "6648" ["date_time"] => string(10) "1473150900" ["classname"] => string(15) "呵呵呵呵呵" ["sk_id"] => NULL ["num"] => int(1) } [2] => array(8) { ["email"] => string(19) "13537951319@163.com" ["sno"] => string(15) "106725097310815" ["class_id"] => string(3) "559" ["user_id"] => string(4) "6648" ["date_time"] => string(10) "1473147900" ["classname"] => string(15) "呵呵呵呵呵" ["sk_id"] => NULL ["num"] => int(2) } [3] => array(8) { ["email"] => string(19) "13537951319@163.com" ["sno"] => string(15) "106725097310815" ["class_id"] => string(3) "559" ["user_id"] => string(4) "6648" ["date_time"] => string(10) "1473144600" ["classname"] => string(15) "呵呵呵呵呵" ["sk_id"] => NULL ["num"] => int(3) } .... }, [1] =array(88){ [0] => array(8) { ["email"] => string(19) "13537951319@163.com" ["sno"] => string(15) "106725097310815" ["class_id"] => string(3) "559" ["user_id"] => string(4) "6648" ["date_time"] => string(10) "1473159600" ["classname"] => string(15) "呵呵呵呵呵" ["sk_id"] => NULL ["num"] => int(0) } [1] => array(8) { ["email"] => string(19) "13537951319@163.com" ["sno"] => string(15) "106725097310815" ["class_id"] => string(3) "559" ["user_id"] => string(4) "6648" ["date_time"] => string(10) "1473150900" ["classname"] => string(15) "呵呵呵呵呵" ["sk_id"] => NULL ["num"] => int(1) } [2] => array(8) { ["email"] => string(19) "13537951319@163.com" ["sno"] => string(15) "106725097310815" ["class_id"] => string(3) "559" ["user_id"] => string(4) "6648" ["date_time"] => string(10) "1473147900" ["classname"] => string(15) "呵呵呵呵呵" ["sk_id"] => NULL ["num"] => int(2) } [3] => array(8) { ["email"] => string(19) "13537951319@163.com" ["sno"] => string(15) "106725097310815" ["class_id"] => string(3) "559" ["user_id"] => string(4) "6648" ["date_time"] => string(10) "1473144600" ["classname"] => string(15) "呵呵呵呵呵" ["sk_id"] => NULL ["num"] => int(3) } .... } .... }</code>
<code> foreach($arr as $k1 =>$v1){ $z=0; foreach($v1 as $k2 =>$v2){ if(empty($v2['sk_id'])){ $z=$z+1; }else{ $z=0; } if($z==8){ unset($arr[$k1]); break; } } } print_r($arr); </code>
이거 괜찮은지 보실래요
간단한 예제를 작성하고 연속으로 세 번 반복한 후 하위 배열을 제거합니다.
배열:
<code class="php">array(2) { [0]=> array(3) { [0]=> array(2) { ["key"]=> int(0) ["sk_id"]=> NULL } [1]=> array(2) { ["key"]=> int(1) ["sk_id"]=> NULL } [2]=> array(2) { ["key"]=> int(2) ["sk_id"]=> NULL } } [1]=> array(3) { [0]=> array(2) { ["key"]=> int(0) ["sk_id"]=> NULL } [1]=> array(2) { ["key"]=> int(1) ["sk_id"]=> NULL } [2]=> array(2) { ["key"]=> int(2) ["sk_id"]=> int(1) } } } </code>
코드:
<code class="php">$three = array( array( array( 'key' => 0, 'sk_id' => null ), array( 'key' => 1, 'sk_id' => null ), array( 'key' => 2, 'sk_id' => null ), ), array( array( 'key' => 0, 'sk_id' => null ), array( 'key' => 1, 'sk_id' => null ), array( 'key' => 2, 'sk_id' => 1 ), ), ); $result = array(); foreach($three as $key=>$value) { $flag = 0; foreach($value as $k => $v) { if($v['sk_id'] == null) { $flag += 1; } } if($flag < 3) { array_push($result,$value); } } var_dump($result); }</code>
출력:
<code class="php">array(1) { [0]=> array(3) { [0]=> array(2) { ["key"]=> int(0) ["sk_id"]=> NULL } [1]=> array(2) { ["key"]=> int(1) ["sk_id"]=> NULL } [2]=> array(2) { ["key"]=> int(2) ["sk_id"]=> int(1) } } }</code>
이 아이디어를 보세요. 테스트해본 적은 없습니다
<code>function test($array) { $result = array(); foreach ($array as $key => $val) { $flag = false; foreach ($val as $k => $v) { if ($v['sk_id'] != null) { $flag = true; } } if ($flag) { $result[] = $val; } } return $result; }</code>
<code>foreach ($data $key=>$row){ $i=1; foreach ($row as $k=>$r){ if (empty($r['sk_id'])){ $i++; } if (!empty($r['sk_id']) && $i<8){ $i=1; } if ($i>8){ unset($data[$key]); break; } } }</code>