Structure foreach, array multidimensionnel
Bonjour a tous je suis débutant en php et j'ai besoin d'aide SVP 8O.
j'ai une structure de données comme suite:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| array
[0] => array(3){
["type"]=>"fruits"
["name"]=>"banane"
["depends"]=>array(3){
[0]=>"fraise"
[1]=>"kiwi"
[2]=>"pomme"
}
}
[1] => array(3){
["type"]=>"fruits"
["name"]=>"ananas"
["depends"]=>array(3){
[0]=>"avocat"
[1]=>"kiwi"
[2]=>"banane"
}
}
[2] => array(3){
["type"]=>"fruits"
["name"]=>"kiwi"
["depends"]=>array(3){
[0]=>"ananas"
[1]=>"avocat"
[2]=>"banane"
}
}
... |
et je cherche a vérifier pour chaque ["name"] si il existe dans depends lui affecter le nom associé a ["depends"] pour avoir une structure comme suite:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| array {
["banane"] =>array{
[0]=>"ananas" =>array{
[0]=>"kiwi"
}
[1]=>"kiwi" =>array{
[0]=>"banane"
[1]=>"ananas"
}
}
["ananas"] =>array{
[0]=>"kiwi"
}
} |
Mon code actuellement est le suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <?php
$json = file_get_contents("data/data.json");
$data = json_decode($json, true);
//create my liste of fruits
$fruits_liste = array_column($data, 'name');
$parcours = array();
foreach ($fruits_liste as $indice => $fruits_name) {
foreach ($data as $key => $value) {
if (in_array($fruits_name, $value['depends'])) {
$parcours[$fruits_name] = $value['name'];
}
}
}
echo '<pre>';
var_dump($parcours);
echo '</pre>'; |