array(5) { [0]=> array(14) { ["id"]=> string(3) "143" ["store_id"]=> string(3) "504" ["goodsid"]=> string(2) "15" ["source"]=> string(1) "2" } [1]=> array(14) { ["id"]=> string(3) "142" ["store_id"]=> string(3) "503" ["goodsid"]=> string(2) "33" ["source"]=> string(1) "2" } [2]=> array(14) { ["id"]=> string(3) "141" ["store_id"]=> string(3) "638" ["goodsid"]=> string(2) "41" ["source"]=> string(1) "1" } [3]=> array(14) { ["id"]=> string(3) "140" ["store_id"]=> string(3) "638" ["goodsid"]=> string(2) "41" ["source"]=> string(1) "1" } }
Comment un tel tableau peut-il être fusionné si les deux champs store_id et source sont identiques ?
Pas de fonctions prêtes à l'emploi. Je ne peux l'écrire que moi-même et je ne comprends pas ce que vous entendez par fusionner. . .
Vous pouvez parcourir les données.
Les nouvelles données utilisent les deux champs $store_id.'_'.$source comme clé
$data[$store_id.'_'.$source][] = $_data;
De cette façon, ou de la façon dont vous souhaitez le gérer
Je ne veux pas écrire de code, juste mes pensées
1 Depuis la fusion, si id et goodid ne peuvent pas être écrasés, nous ne pouvons utiliser qu'un tableau de structure à trois couches, c'est-à-dire que store_id et source sont la classe parent comme une couche, et les sous-classes id et goodid constituent une seule couche.
2. Fusionnez les deux champs avec le même store_id et la même source, c'est-à-dire fusionnez les deux champs dans un nouveau tableau comme valeur clé, ajoutez à nouveau toutes les informations. Sinon, ajoutez les éléments enfants. directement
La méthode de mappage utilisant hashmap :
1. Construisez une structure de données sous forme de hashmap, utilisez la combinaison store_id et source comme clé, utilisez un tableau de variables comme valeur et stockez toutes les données correspondant au store_id et à la source dans le tableau de variables.
2. Pour faciliter le tableau bidimensionnel, si la clé combinée par store_id et source existe déjà dans la structure de données construite, alors placez toutes les données correspondant à store_id et source dans le tableau de variables correspondant à la clé. S'il n'existe pas, ajoutez-en un. La nouvelle paire clé-valeur utilise également la valeur combinée de source et store_id comme clé, et le tableau de variables comme valeur. Placez toutes les données correspondant à source et store_id dans le tableau de variables correspondant à key.
3. Hashmap pratique pour fusionner les données dans le tableau correspondant à chaque clé.