Je suis en train d'obtenir toutes les combinaisons possibles pour un nombre inconnu de tableaux en tant que tels:Obtenez toutes les combinaisons de tableaux uniques en utilisant PHP produit cartésien
Voici la structure de données JSON
[
{
"department": "CIS",
"name": "Intro to CIS",
"sections": [
{
"sectionNumber": "01",
"regNum": "",
"days": "MWF",
"startTime": "900",
"endTime": "1030",
"labDay": "M",
"labStartTime": "1300",
"labEndTime": "1500"
},
{
"sectionNumber": "02",
"regNum": "098304",
"days": "TR",
"startTime": "1300",
"endTime": "1500",
"labDay": "",
"labStartTime": "",
"labEndTime": ""
}
]
},
{
"department": "MATH",
"name": "Intro to MATH",
"sections": [
{
"sectionNumber": "01",
"regNum": "",
"days": "MWF",
"startTime": "900",
"endTime": "1030",
"labDay": "M",
"labStartTime": "1300",
"labEndTime": "1500"
},
{
"sectionNumber": "02",
"regNum": "098304",
"days": "TR",
"startTime": "1300",
"endTime": "1500",
"labDay": "",
"labStartTime": "",
"labEndTime": ""
}
]
}
]
I J'aimerais que le résultat soit le suivant: Le résultat devrait contenir tout le tableau associatif du cours afin que je puisse accéder à toutes ses données (sectionNumber, regNum, days, ..etc)
Notez, je ne sais pas combien de cours ou de sections il y aura. En outre, un cours ne devrait jamais se comparer à lui-même.
Résultat souhaité:
[
[ [CIS 01 Array],[MATH 01 Array] ],
[ [CIS 01 Array],[MATH 02 Array] ],
[ [CIS 02 Array],[MATH 01 Array] ],
[ [CIS 02 Array],[MATH 02 Array]]
]
Chaque tableau de résultat doit contenir des tableaux (qui sont la même longueur que le nombre de cours) de tableaux.
Je pense que je devrais utiliser le produit cartésien, mais je ne suis pas certain sur la façon de mettre en œuvre. j'ai commencé à faire quelque chose comme ça, mais je sais qu'il est pas exact:
for($i = 0; $i < count($json_data); $i++){ //courses
for($k = 0; $k < count($json_data[$i]["sections"]); $k++){ //first sections
for($p = 1; $p < count($json_data[$i]["sections"]); $p++){ //all other courses but 1
for($h = 0; $h < count($json_data[$i]["sections"][$p]); $h++){
echo $json_data[$i]["sections"][$k]["labDay"];
}
}
}
}
En fonction de vos contraintes de mémoire, vous pouvez utiliser une fonction récursive qui ajoute tous les éléments restants, y compris lui-même, à votre tableau de résultats. –
@ChrisThorsvik Mais devrait être le tableau de résultats qui contient des tableaux contenant des tableaux. En outre, un cours ne devrait jamais se comparer à lui-même. –
Pouvez-vous clarifier une chose? Vous avez dit "Chaque tableau de résultats devrait contenir des tableaux ... qui ont la même longueur que le nombre de cours". Voulez-vous dire que chaque élément du tableau des résultats doit contenir exactement un cours de chaque département? –