contare record uguali in file csv

lucasky

Nuovo Utente
11 Mar 2020
2
0
1
Salve, ho un piccolo database CSV fatto in questa maniera:

Pippo,data,ora,OK,
Pluto,data,ora,OK,
Pluto,data,ora,OK,
Pippo,data,ora,KO,
Pippo,data,ora,OK,
Pippo,data,ora,OK,
Pluto,data,ora,KO,
ecc....

Con il codice sotto riporto i dati OK in una tabella secondo ordine inserimento.
La mia domanda è: come faccio ad ottenere quante volte compare Pippo in ok, quante volte Pluto in ok?
Vorrei ottenere una cosa del genere:

Pippo = 3 volte
Pluto = 2 volte
ecc...
PHP:
<?php

$fd= fopen ('il_mio_file.csv', "r");
while (!feof ($fd))
{
$riga=fgets($fd, 4096);
if ($riga != ' ')
{
$arr=split(',', $riga);

if ($arr[3] == ''OK"){

echo 'table>';
echo '<tr>';
echo '<td>' . $arr[0] . '</td>';
echo '<td>' . $arr[1] . '</td>';
echo '<td>' . $arr[2] . '</td>';
echo '</tr>';
echo '</table>';
}
}
}

fclose($fd);
?>
 
Ultima modifica di un moderatore:

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.389
338
83
@lucasky

Da regolamento del forum, come tutti noi sei tenuto ad usare il tag [ html].........[/html] senza spazio quando posti del codice html o il tag appropriato per altro codice, oppure la funzione codice dalla barra degli strumenti

box inserisci.png


Inoltre IMPORTANTE: Prima di creare una nuova discussione o di rispondere alle discussioni esistenti sei tenuto e ricordati di leggere attentamente il Regolamento del Forum e l'eventuale regolamento specifico della sezione!
Grazie
Per questa volta te lo sistemo io ma mi raccomando per il futuro
 

lucasky

Nuovo Utente
11 Mar 2020
2
0
1
@lucasky

Da regolamento del forum, come tutti noi sei tenuto ad usare il tag [ html].........[/html] senza spazio quando posti del codice html o il tag appropriato per altro codice, oppure la funzione codice dalla barra degli strumenti

box inserisci.png


Inoltre IMPORTANTE: Prima di creare una nuova discussione o di rispondere alle discussioni esistenti sei tenuto e ricordati di leggere attentamente il Regolamento del Forum e l'eventuale regolamento specifico della sezione!
Grazie
Per questa volta te lo sistemo io ma mi raccomando per il futuro
Ok grazie
 

WmbertSea

Utente Attivo
28 Nov 2014
205
32
28
Ciao, tu stai eseguendo il parsing direttamente dalla risorsa aperta ma forse converrebbe riversare inizialmente in un array tutti i dati recuperati, così da poterli manipolare più facilmente per le eventuali operazioni che vuoi andare a fare.

Una volta che i dati sono in un array multidimensionale puoi eseguire intanto un filtro, con array_filter, per avere un array dei soli elementi "OK", quindi puoi ottenere, con array_column, un array degli elementi della sola prima colonna (quella dei nomi) e, a quel punto, con array_count_values puoi ottenere il conteggio dei singoli nomi.

Qui un esempio rielaborato partendo dalle tue indicazioni:
PHP:
<?php
$fileURL = "il_mio_file.csv";

$arr = array_map("str_getcsv", file($fileURL, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES));

$arrElementiOK = array_filter($arr, function($el){ return $el[3] == "OK"; });

$arrColNomi = array_column($arrElementiOK, 0);

$arrConteggioNomi = array_count_values($arrColNomi);

foreach ($arrConteggioNomi as $key => $value) {
    echo "$key = $value volte<br>";
}

echo "<hr>";

echo "<table>";
foreach ($arrElementiOK as $el) {
    echo "<tr>";
    echo "<td>$el[0]</td>";
    echo "<td>$el[1]</td>";
    echo "<td>$el[2]</td>";
    echo "</tr>";
}
echo "</table>";
?>

Vedi se può esserti utile, fai sapere :)
 
Discussioni simili
Autore Titolo Forum Risposte Data
C Contare numero record uguali Database 3
nim contare record uguali in tabella PHP 10
G [ACCESS2007]: contare li ultimi record con lo stesso valore in un campo, finchè il valore non cambia MS Access 2
zorro [PHP] Contare i record di una tabella PHP 6
M contare record db con valore specifico PHP 1
anthares Contare record in tabella secondo certe condizioni PHP 21
A Contare gli elementi di un array PHP 13
maxnegri Contare sessioni aperte e creare condizione PHP 1
B [MySQL] contare quante un oggetto e' presente MySQL 2
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
P [PHP] Contare quante volte uno stesso id si ripete nella tabella PHP 12
P [PHP] Contare i mesi con timestamp. PHP 8
A Contare n° totale oggetti da mysql PHP 5
asevenx [Javascript] [AngularJS] contare opzioni selezionate di una select in un elenco ng-repeat Javascript 0
xone [PHP] Contare numero dei giorni tra data_in e data_out PHP 11
F Contare le righe con php ad oggetti MySQL 0
asevenx Contare numero di righe in un form dinamico Javascript 5
F Miglior metodo per contare le righe di una query MySQL 2
S Contare valori uguali in una colonna PHP 2
N Contare post MySQL 2
L contare nodi figli di un determinato nodo madre XML 0
H Contare file presenti nella pagina PHP 3
S [RISOLTO]php contare numero delle query PHP 1
L Contare determinati valori che si ripetono in una tabella per un detemrinato ID MySQL 2
Monital Contare il numero di righe con php5 PHP 10
Shyson Contare i caratteri user e dominio Javascript 57
D Contare numero div con una determinata classe Javascript 2
criric Contare le settimane di un mese Snippet PHP 3
Monital Contare valori uguali di un array e dividerli in una stringa PHP 12
nim contare frasi che si ripetono PHP 10
R Contare il numero di click su un link PHP 2
A contare iniziali dei nomi Java 3
G contare e sommare dopo JOIN Database 8
M non contare gli accessi dal tuo pc Supporto Mr.Webmaster 1
S Come contare i Download file .zip su html HTML e CSS 10
A Tabella con bottoni per aggiornamento record PHP 6
S Differenza date record successivi MS Access 7
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
S Aggiornamento lista record Database 2
M Esportazione in CSV, salta il primo record PHP 4
T foreach e fetchAll dove recupero solo l'ultimo record PHP 5
A Raggruppare record con stessa data PHP 13
R Scorporare array e recuperare record tabella PHP 10
Tommy03 Select in ordine per numero di record MySQL 7
L Creazione di 2 o più record PHP 6
mazman mysqli_query() mi ritorna un array vuoto anche se presente un record nella tabella PHP 13
M Estrapolare singoli record da intervallo (dal al/inizio fine) MS Access 0
max1974 [MySQL] Estrapolare record finti/inisistenti MySQL 9
G [PHP] Passare dati tra record PHP 4
G Cambiare colore ad un record database mysql MySQL 0

Discussioni simili