Autor Zpráva
xciza
Profil
Ahoj,
trochu jsem se zasekl na vytváření pole a chtěl bych požádat o radu jak na to.
Mám z databáze vytažená data, která potřebuji dostat do pole. Vytažená data jsou také ve tvaru pole. Jedná se o produkty a kategorie. V jednom poli jsou všechny produkty a v druhém poli všechny kategorie. A potřeboval bych z toho udělat jedno pole. Pole produktů má tvar: array([product_id, category_id, product_name], ...) a pole kategorií: array([category_id, category_name], ...). A výsledné pole bych potřeboval o tvaru, kde budou další pole a v každém bude název kategorie a její produkty. Doufám že je srozumitelné.

Předem děkuji za rady
Alphard
Profil
Tohle se obvykle řeší konstrukcí

$out = [];
foreach ($products as $product)
{
  $out[$product['category_id']][] = $product;
}
xciza
Profil
ale já neznám category_id jelikož si kategorie vytváří uživatel v administraci. Myslel jsem třeba použít nejak dva vnořené foreach?
Alphard
Profil
Jestli nelze věřit struktuře popsané v [#1] (podle které category_id znáte), těžko bude někdo vymýšlet vnořené cykly.

Případně by šlo katagorie ještě joinou na úrovni databáze, ale i tak bude potřeba výsledné pole doladit v aplikaci.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: