一個數組演算法問題,三維數組,怎麼排除掉在第一層的每個數組裡面的子數組裡面每個元素的sk_id連續8條為空白的數組去除掉?

來源:互聯網
上載者:User
如果,大數組裡面的子數組每個元素裡面有連續8個子項目的sk_id為空白的則去掉這子數組。資料列印後如下:

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)          }          ....      }            ....}

回複內容:

如果,大數組裡面的子數組每個元素裡面有連續8個子項目的sk_id為空白的則去掉這子數組。資料列印後如下:

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)          }          ....      }            ....}

   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);

你看下這樣可以嗎

寫了一個簡單的小例子,連續重複三個,去掉子數組。

數組:

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)    }  }}

代碼:

$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);}

輸出:

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)    }  }}

你看看這個思路,我沒有做測試

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;    }

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;         }           }}
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.