Hello everybody I have a script that loops an array that put data in a CSV file, i need to count the rows with same ID.
this is my scritpt that loops the array and put it in a csv file for export.
public function fputToFile($file, $allexportfields, $object, $ae) { if($allexportfields && $file && $object && $ae) { //one ready for export product $readyForExport = array(); //put in correct sort order foreach ($allexportfields as $value) { $object = $this->processDecimalSettings($object, $ae, $value); $readyForExport[$value] = iconv("UTF-8", $ae->charset, $object[$value]); } //write into csv line by line fputcsv($file, $readyForExport, $ae->delimiter, $ae->separator); } }
I've tried to use :
$numero_riga = array_count_values($readyForExport); $readyForExport['numero_riga'] = $numero_riga;
but it does not print any correct value in the csv file meabe because it is a multi dimensional array, you can see the csv export in the text and screenshot below:
ID row_number
198 Array 199 Array 200 Array 200 Array 201 Array 201 Array 201 Array 201 Array 202 Array 202 Array 203 Array 203 Array 203 Array 204 Array 204 Array 204 Array 204 Array 204 Array 205 Array 205 Array 205 Array 206 Array 207 Array 207 Array 208 Array 209 Array
The result have to be like this in the text and screenshot below you can see a column that counts the rows with same ID.
ID row_number
176 1 177 1 177 2 178 1 178 2 179 1 179 2 180 1 181 1 181 2 182 1 182 2 183 1 184 1 184 2 185 1 185 2 186 1 186 2 186 3
Thanks in advance.
EDIT
Edited whit suggestions from scaisEdge but now the csv export acts in a strange way. I paste screenshot here csv strange behaviour
EDIT
now I'm using this code whit the help of scaisEdge, i think we are close to the solution.
$cnt_row = 0; $match_id = -1; //put in correct sort order foreach ($allexportfields as $value) { if ( $value['id_order'] == $match_id){ $cnt_row++; } else { $cnt_row =1; $match_id = $value['id_order']; } //$value['num_row'] = $cnt_row; print_r($cnt_row); $object = $this->processDecimalSettings($object, $ae, $value); $readyForExport[$value] = iconv("UTF-8", $ae->charset, $object[$value]); } $readyForExport['num_row'] = $cnt_row;
i paste the screenshot of the actual result here: partially correct result you can see that now is printing some values in the correct column but is prints " 4 " all the time...