Devo occuparmi di un refactoring, per ridurre il numero di righe di codice in PHP, per filtrare un array associativo. Quindi sto facendo una selezione dal DB in MySQL, per ottenere un array associativo. Quindi il mio "oggetto" ha una categoria e un campo di cognome.Come filtrare un array associativo?
while ($row = mysqli_fetch_array($result)) {
$array[] = $row['category'];
$array[] = $row['Surname'];
}
Voglio ottenere da questo array, come molti altri sub-array, diviso per la categoria. Voglio dire l'identificazione Array categoria può essere:
$categories = array("A","B","C","D");
Quindi quello che voglio, è quello di ottenere un array per ogni categoria, che contiene tutte le cognome, di tale categoria. Quindi supponiamo che il metodo funziona, qualcosa di simile:
$arrayFiltered = method_filter($array_asso,"A");
Alla fine voglio qualcosa di simile:
foreach ($categories as &$value) {
$arrayFiltered = method_filter($array_asso,$value);
my_method_which_needs_the_filtered_array($arrayFiltered);
}
vi ringrazio in anticipo per il vostro aiuto.
È necessario corretta struttura della tabella normalizzata nel DB !! Questo approccio (memorizzare i dati in valori separati da virgola per record) ti darà un sacco di mal di testa –
Il DB ha una tabella, che è: Categoria, Cognome come campo. In questo momento funziona, quello che sto facendo per ogni categoria, una query, ma questo aggiunge un po 'di ritardo e il codice potrebbe essere migliorato. –
, che è: cosa? –