Maison > Questions et réponses > le corps du texte
J'ai une table avec les données de vol dans MySQL. J'écris un code php qui regroupera et affichera les données à l'aide de codeigniter 3
journey_id air_id FlightDuration out_or_in flightduration2 1 1 20hr 5min outbound 1205 2 1 20hr 5min outbound 1300 3 1 17hr 55min inbound 2258 4 1 17hr 55min inbound 1075 5 2 31hr 40min outbound 1970 6 2 31hr 40min outbound 1900 7 2 17hr 55min inbound 2223 8 2 17hr 55min inbound 1987 9 3 10hr 45min outbound 645 10 3 11hr 25min inbound 685
J'utilise $this->db->get()
pour récupérer les données et je peux boucler facilement. Mais comme chaque ligne est dans un tableau, j’ai du mal à les regrouper. Je ne peux pas utiliser de groupes MySQL car j'ai besoin de chaque ligne.
Par exemple, je souhaite afficher les éléments suivants
air_id - 1 20hr 5min outbound 1205 20hr 5min outbound 1300 17hr 55min inbound 2258 17hr 55min inbound 1075 air_id - 2 31hr 40min outbound 1970 31hr 40min outbound 1900 17hr 55min inbound 2223 17hr 55min inbound 1987 air_id - 3 10hr 45min outbound 645 11hr 25min inbound 685
Quelle est la meilleure façon de regrouper les résultats par air_id
afin que je puisse itérer
P粉0432953372024-04-07 16:23:46
Obtenir des données de la base de données :
$this->db->select('journey_id, air_id, FlightDuration, out_or_in, flightduration2'); $this->db->from('your_table_name'); // Replace 'your_table_name' with the actual table name $query = $this->db->get(); $data = $query->result_array();
Créez un tableau vide pour contenir des données groupées :
$grouped_data = array();
Parcourez les données récupérées et regroupez-les par air_id :
foreach ($data as $row) { $air_id = $row['air_id']; // Check if the air_id already exists in the grouped_data array if (!isset($grouped_data[$air_id])) { // If not, initialize an empty array for this air_id $grouped_data[$air_id] = array(); } // Add the current row to the group for this air_id $grouped_data[$air_id][] = $row; }
Vous avez maintenant les données regroupées par air_id dans le tableau $grouped_data. Vous pouvez parcourir ce tableau pour afficher les données que vous spécifiez :
foreach ($grouped_data as $air_id => $group) { echo "air_id - $air_id
"; foreach ($group as $row) { echo $row['FlightDuration'] . ' ' . $row['out_or_in'] . ' ' . $row['flightduration2'] . '
'; } echo "
"; }
Ce code parcourra les données groupées et les affichera comme vous le décrivez, chaque groupe de données de vol se trouve sous l'air_id correspondant.