Raggruppare un array multidimensionale in PHP
In sostanza avevo la necessità di raggruppare un array per chiave in PHP.
E poi di visualizzare il nuovo array partendo dalla chiave raggruppata.
Questo l'array di partenza:
$array = array(
array(
'fornitore' => 'forn 1',
'articolo' => 'articolo 1'
),
array(
'fornitore' => 'forn 1',
'articolo' => 'articolo 2'
),
array(
'fornitore' => 'forn 2',
'articolo' => 'articolo 1'
),
array(
'fornitore' => 'forn 3',
'articolo' => 'articolo 3'
),
);
Come vedete il fornitore può apparire più volte, ed io nella pagina dovevo visualizzare prima il fornitore e poi tutti i suoi articoli.
Ecco un esempio di come ho fatto:
$array = array(
array(
'fornitore' => 'forn 1',
'articolo' => 'articolo 1'
),
array(
'fornitore' => 'forn 1',
'articolo' => 'articolo 2'
),
array(
'fornitore' => 'forn 2',
'articolo' => 'articolo 1'
),
array(
'fornitore' => 'forn 3',
'articolo' => 'articolo 3'
),
);
$newArr = array();
foreach ($array as $key => $item) {
$newArr[$item['fornitore']][$key] = $item;
}
foreach ($newArr as $key => $value) {
echo 'Fornitore: ' . $key . '<br>';
foreach ($value as $v) {
echo '--> Articolo: ' . $v['articolo'] . '<br>';
}
echo '<hr>';
}
Enjoy!
php array
Commentami!