Rumah > Soal Jawab > teks badan
[0.6,0.7,1,0,-1,-2,-3,0,0,-1,-5,-6,1,3,4]
terbahagi kepada
[
[0.6 , 0.7,1],
[0],
[-1,-2,-3],
[0,0],
[-1,-5,-6],
[1 , 3,4]
]
Bagaimana saya harus menulis program ini
手机用户16168371042021-04-22 14:37:26
Kaedahnya agak bodoh, tetapi ia boleh mencapai kesan yang anda inginkan. Saya harap ia dapat membantu anda. indeks fungsi awam () { $array = [0.6, 0.7, 1, 0, -1, -2, -3, 0, 0, -1, -5, -6, 1, 3, 4]; $hasil = []; foreach ($array sebagai $value) { $count = count($hasil); if ($count > 0) { $single = $result[$count - 1]; $indeks = akhir($single); jika (0 === $index) { jika (0 === $value) { $result = $this->handleArray($result, $single, $value, $count); } lain { $result = $this->handleArrayTwo($result, $value); } } elseif ($indeks > 0) { if ($value handleArrayTwo($result, $value); } lain { $result = $this->handleArray($result, $single, $value, $count); } } elseif ($indeks < 0) { if ($value >= 0) { $result = $this->handleArrayTwo($result, $value); } lain { $result = $this->handleArray($result, $single, $value, $count); } } } lain { $result = $this->handleArrayTwo($result, $value); } } var_dump($hasil); mati; } fungsi peribadi handleArray($result, $single, $value, $index) { unset($result[$index - 1]); array_push($single, $value); array_push($hasil, $single); kembalikan nilai_tatasusunan($hasil); } handle fungsi peribadiArrayTwo($result, $value) { $array = []; array_push($array, $value); array_push($hasil, $array); pulangkan $hasil; } // tatasusunan(6) { //[0]=> // tatasusunan(3) { //[0]=> // float(0.6) //[1]=> // float(0.7) //[2]=> // int(1) // } //[1]=> // tatasusunan(1) { //[0]=> // int(0) // } //[2]=> // tatasusunan(3) { //[0]=> // int(-1) //[1]=> // int(-2) //[2]=> // int(-3) // } //[3]=> // tatasusunan(2) { //[0]=> // int(0) //[1]=> // int(0) // } //[4]=> // tatasusunan(3) { //[0]=> // int(-1) //[1]=> // int(-5) //[2]=> // int(-6) // } //[5]=> // tatasusunan(3) { //[0]=> // int(1) //[1]=> // int(3) //[2]=> // int(4) // } //}