Bonjour,
j'aimerais mettre un tableau dans un tableau en parcourant une liste d'objets, mais j'ai des soucis :p
Voici mon code
$provider = Provider::all();
$order = Order::whereIdFamily($id_family)->get();
$providerArray = array();
foreach ($provider as $keyProvider => $valueProvider) {
$providerArray[] = array('id_provider' => $valueProvider->id_provider, 'name' => $valueProvider->name);
foreach ($order as $keyOrder => $valueOrder) {
if ($valueOrder->id_provider == $valueProvider->id_provider) {
$providerArray[] = array('id_order' => $valueOrder->id_order, 'description' => $valueOrder->description);
}
}
}
ce qui me retourne ceci (avec des données de tests)
Array
(
[0] => Array
(
[id_provider] => 1
[name] => La ferme de Gérard Petit
)
[1] => Array
(
[id_order] => 189
[description] => 10 cerices
)
[2] => Array
(
[id_order] => 192
[description] => 1 très grosse pastèque
)
[3] => Array
(
[id_provider] => 2
[name] => La boulangerie du Père Noël
)
[4] => Array
(
[id_order] => 174
[description] => 2 ananas
)
[5] => Array
(
[id_order] => 175
[description] => 1 ravier de fraises
)
[6] => Array
(
[id_order] => 179
[description] => 5 bananes
)
)
et j'aimerais avoir
Array
(
[0] => Array
(
[id_provider] => 1
[name] => La ferme de Gérard Petit
[0] => Array
(
[id_order] => 189
[description] => 10 cerices
)
[1] => Array
(
[id_order] => 192
[description] => 1 très grosse pastèque
)
)
[1] => Array
(
[id_provider] => 2
[name] => La boulangerie du Père Noël
[0] => Array
(
[id_order] => 174
[description] => 2 ananas
)
[1] => Array
(
[id_order] => 175
[description] => 1 ravier de fraises
)
[2] => Array
(
[id_order] => 179
[description] => 5 bananes
)
)
)
à savoir, chaque produit dans le teblaeu de son fournisseur.
Sûrement un truc bête, mais moi et les tableaux ... :p
Je pense que tu peux tester ça :
<?php
$providerArray = array();
foreach ($provider as $keyProvider => $valueProvider) {
$orders = array();
foreach ($order as $keyOrder => $valueOrder) {
if ($valueOrder->id_provider == $valueProvider->id_provider) {
$orders[] = array('id_order' => $valueOrder->id_order, 'description' => $valueOrder->description);
}
}
$providerArray[$keyProvider] = array(
'id_provider' => $valueProvider->id_provider,
'name' => $valueProvider->name,
'orders' => $orders
);
}
Salut, on pourrait avoir la structure de ta table s'il te plaît ?
De plus dans ce que tu voudrais tu aimerais donc 3 niveaux de tableau ?
table : provider
id_provider
name
status
created_at
updated_at
deleted_at
table : order
id_order
id_family
id_provider
id_permanence
description
created_at
updated_at
Et pour les tableaux, oui 3 niveaux. Un array qui contient tous mes providers et dans chaque array provider, un autre array qui contient tous les orders liés à ce provider donc oui 3 niveaux :) et je galère un peu :p