Apabila menulis program PHP, anda selalunya perlu menggunakan tatasusunan untuk menyimpan dan memproses data. Untuk sistem pengurusan prestasi pelajar, kami biasanya perlu mengumpulkan markah untuk statistik dan analisis data yang lebih baik. Artikel ini akan menerangkan cara menggunakan tatasusunan PHP untuk mengumpulkan gred.
1. Buat tatasusunan skor pelajar
Pertama, kita perlu mencipta tatasusunan skor pelajar untuk menyimpan maklumat skor setiap pelajar. Katakan data yang ingin kita proses adalah seperti berikut:
学号 | 姓名 | 语文 | 数学 | 英语 |
---|---|---|---|---|
101 | 张三 | 85 | 90 | 78 |
102 | 李四 | 90 | 75 | 82 |
103 | 王五 | 78 | 80 | 85 |
104 | 赵六 | 88 | 92 | 94 |
105 | 钱七 | 92 | 85 | 88 |
Kita boleh menggunakan tatasusunan dua dimensi untuk menyimpan data ini, kodnya adalah seperti berikut:
$score = array( array('id' => 101, 'name' => '张三', 'chinese' => 85, 'math' => 90, 'english' => 78), array('id' => 102, 'name' => '李四', 'chinese' => 90, 'math' => 75, 'english' => 82), array('id' => 103, 'name' => '王五', 'chinese' => 78, 'math' => 80, 'english' => 85), array('id' => 104, 'name' => '赵六', 'chinese' => 88, 'math' => 92, 'english' => 94), array('id' => 105, 'name' => '钱七', 'chinese' => 92, 'math' => 85, 'english' => 88) );
Dengan cara ini, kami mencipta lima dimensi Satu tatasusunan elemen, setiap elemen mewakili maklumat prestasi pelajar. Setiap elemen ialah tatasusunan bersekutu yang mengandungi nombor pelajar, nama dan gred dalam setiap mata pelajaran.
2. Mengelompokkan mengikut prestasi
Seterusnya, kita perlu mengumpulkan mengikut prestasi. Katakan kita ingin mengumpulkan mengikut jumlah markah, dan meletakkan pelajar dengan jumlah markah kurang daripada 80 mata ke dalam satu kumpulan, pelajar dengan skor 80-90 mata ke dalam kumpulan lain, dan pelajar dengan skor melebihi 90 mata ke dalam kumpulan ketiga. Kita boleh menggunakan gelung untuk melintasi tatasusunan skor pelajar, mengira jumlah skor setiap pelajar secara bergilir-gilir, dan mengelaskannya ke dalam kumpulan yang sepadan. Kodnya adalah seperti berikut:
$group1 = array(); //80分以下 $group2 = array(); //80-90分 $group3 = array(); //90分以上 foreach ($score as $item) { $total = $item['chinese'] + $item['math'] + $item['english']; //计算总分 if ($total < 80) { $group1[] = $item; } elseif ($total >= 80 && $total < 90) { $group2[] = $item; } else { $group3[] = $item; } }
Di sini kami mentakrifkan tiga tatasusunan untuk menyimpan tiga kumpulan maklumat pelajar. Kemudian gunakan gelung foreach untuk merentasi maklumat skor setiap pelajar, kira jumlah skor setiap pelajar, dan klasifikasikan mereka ke dalam kumpulan yang sepadan.
3. Keluarkan hasil kumpulan
Akhir sekali, kami perlu mengeluarkan hasil kumpulan untuk statistik dan analisis selanjutnya. Kita boleh menggunakan gelung foreach untuk melintasi maklumat pelajar setiap kumpulan dan mengeluarkan nama pelajar dan jumlah markah ke halaman. Kodnya adalah seperti berikut:
echo '<h2>80分以下</h2>'; foreach ($group1 as $item) { $total = $item['chinese'] + $item['math'] + $item['english']; echo $item['name'] . ':' . $total . '<br>'; } echo '<h2>80-90分</h2>'; foreach ($group2 as $item) { $total = $item['chinese'] + $item['math'] + $item['english']; echo $item['name'] . ':' . $total . '<br>'; } echo '<h2>90分以上</h2>'; foreach ($group3 as $item) { $total = $item['chinese'] + $item['math'] + $item['english']; echo $item['name'] . ':' . $total . '<br>'; }
Di sini kita mula-mula mengeluarkan tajuk setiap kumpulan, kemudian menggunakan gelung foreach untuk melintasi maklumat pelajar setiap kumpulan, mengira jumlah markah pelajar, dan mengeluarkan nama pelajar dan jumlah skor kepada halaman yang lebih tinggi.
4. Kod lengkap
Berikut ialah kod PHP lengkap, termasuk kod untuk mencipta tatasusunan skor pelajar, mengumpulkan markah dan mengeluarkan hasil kumpulan.
$score = array( array('id' => 101, 'name' => '张三', 'chinese' => 85, 'math' => 90, 'english' => 78), array('id' => 102, 'name' => '李四', 'chinese' => 90, 'math' => 75, 'english' => 82), array('id' => 103, 'name' => '王五', 'chinese' => 78, 'math' => 80, 'english' => 85), array('id' => 104, 'name' => '赵六', 'chinese' => 88, 'math' => 92, 'english' => 94), array('id' => 105, 'name' => '钱七', 'chinese' => 92, 'math' => 85, 'english' => 88) ); $group1 = array(); //80分以下 $group2 = array(); //80-90分 $group3 = array(); //90分以上 foreach ($score as $item) { $total = $item['chinese'] + $item['math'] + $item['english']; //计算总分 if ($total < 80) { $group1[] = $item; } elseif ($total >= 80 && $total < 90) { $group2[] = $item; } else { $group3[] = $item; } } echo '80分以下
'; foreach ($group1 as $item) { $total = $item['chinese'] + $item['math'] + $item['english']; echo $item['name'] . ':' . $total . '
'; } echo '80-90分
'; foreach ($group2 as $item) { $total = $item['chinese'] + $item['math'] + $item['english']; echo $item['name'] . ':' . $total . '
'; } echo '90分以上
'; foreach ($group3 as $item) { $total = $item['chinese'] + $item['math'] + $item['english']; echo $item['name'] . ':' . $total . '
'; }
5. Ringkasan
Melalui kod di atas, kita boleh mengumpulkan pelajar mengikut markah mereka dan mengumpulkan pelajar mengikut jumlah markah mereka untuk memudahkan statistik dan analisis maklumat prestasi pelajar yang lebih baik. Pada masa yang sama, contoh ini juga menunjukkan cara menggunakan tatasusunan PHP untuk operasi asas menyimpan dan memproses data. Kaedah pengelompokan dan asas pengelompokan yang berbeza juga perlu dipilih dan ditambah baik mengikut situasi sebenar dalam aplikasi sebenar.
Atas ialah kandungan terperinci Bagaimana untuk mengumpulkan hasil menggunakan tatasusunan php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!