Raggruppare un array multidimensionale in PHP

Mattepuffo's logo
Raggruppare un array multidimensionale in PHP

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!


Condividi su Facebook

Commentami!