Логика заполнения двумерного массива PHP

1 23
D
На сайте с 28.06.2008
Offline
1113
#21

Прошу оценить мое собственное решение, мне кажется оно в разы лаконичнее и понятнее


$tmp = 0;
$newArr = [];
for($i=0;$i<317;$i++){
    if(!in_array(1, $tempArr[$i])) {
        //добавляем первый подмассив, или если после цепочки единиц начались нули $tmp еще не перезатерлась и скажет нам об этом
        if(count($newArr)==0 || $tmp == 1){
            array_push($newArr, $tempArr[$i]);
        }else{
            foreach ($tempArr[$i] as $item) {
                array_push($newArr[count($newArr)-1], $item);
            }
        }
        $tmp = 0;

    }  else {
         //пушим новый подмассив с единицами, если он пошел после цепочки нулей $tmp еще не перезатерлась и скажет нам об этом
        if($tmp == 0){
            array_push($newArr, $tempArr[$i]);
        }
        if($tmp == 1){
            foreach ($tempArr[$i] as $item) {
                array_push($newArr[count($newArr)-1], $item);
            }
        }
        $tmp = 1;
    }
}
1 23

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий