problème de traversée du tableau php foreach
PHP中文网
PHP中文网 2017-05-16 13:03:11
0
6
601

< /p>

Comme le montre la figure, comment faire en sorte que les mêmes nombres dans order_id ne soient affichés qu'une seule fois dans une boucle

L'entreprise est comme ceci. Ce tableau enregistre la relation entre une commande et un produit. order_id est l'identifiant de la commande. Par conséquent, les deux 815 enregistrés dans le tableau indiquent qu'il s'agit de la même commande. même identifiant de commande

Ensuite, la question est de savoir comment fusionner le même order_id en une seule sortie lors de l'affichage de la liste de commandes

L'image ci-dessus montre la sortie séparée du même order_id et comment les fusionner

PHP中文网
PHP中文网

认证高级PHP讲师

répondre à tous(6)
小葫芦
$user_orders = 你获取的数据库数据;
$order_array = array();
foreach($user_orders as $value){
    $order_array[$value['order_id']][] = something;//一些你想放进去的数据 
}
return $order_array;

Sortez le tableau en fonction de l'ID de commande et fusionnez directement les mêmes (veuillez me dire s'il y a quelque chose qui ne va pas)

巴扎黑

Cela n'a rien à voir avec votre boucle foreach et tout à voir avec la logique de rendu de la page.

Par exemple : lorsque vous constatez qu'il y a déjà le même numéro de commande auparavant, ce n'est pas grave si vous n'affichez plus le numéro de commande

小葫芦

Il y a un problème avec la structure de la table. Généralement, il existe une table de commande et une table de produits de commande. Avec votre structure de table actuelle, vous pouvez d'abord interroger le groupe par order_id, puis foreach order_id, puis boucler pour interroger tous les produits qu'il contient. id_commande

某草草

Cela devrait être le résultat que vous souhaitez, traitez-le puis répétez.

$arr = array(
            array('pro_id'=>1,'order_id'=>1),
            array('pro_id'=>2,'order_id'=>1),
            array('pro_id'=>3,'order_id'=>2),
            array('pro_id'=>4,'order_id'=>3),
            array('pro_id'=>5,'order_id'=>4),
        );
$arr = array_column($arr,null,'order_id');
print_r($arr);die;
//打印结果如下
Array
(
    [1] => Array
        (
            [pro_id] => 2
            [order_id] => 1
        )

    [2] => Array
        (
            [pro_id] => 3
            [order_id] => 2
        )

    [3] => Array
        (
            [pro_id] => 4
            [order_id] => 3
        )

    [4] => Array
        (
            [pro_id] => 5
            [order_id] => 4
        )

)
左手右手慢动作

Supprimer les doublons lors de la récupération de la base de données

phpcn_u1582

sélectionnez distinctif(order_id)

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal