Far contere gli oggetti allo script

Ciao ragazzi, ho una variabile che mi restituisce la quantità solo che:

se ho 10 oggetti con id 1 mi dà 10 volte 1 => 1,1,1,1,1,1,1,1,1,1

Io vorrei sapere se c'è una funzione che mi restituisse 10x1, in pratica che non devo contarli io O0

Ciao e grazie :bye:

inviato 9 anni fa
dantefoxfox
X 0 X

Mancano tutte le informazioni utili per capire dov'è il "problema", diciamo che potresti usare count(), ma se gli oggetti con id 1 sono righe di una query devi usare num_rows (con la corretta sintassi).

risposto 9 anni fa
LonelyWolf
X 0 X

Se riesci a mettere le quantità in un array puoi usare

array_count_values()

http://it2.php.net/manual/en/function.array-count-values.php

ciao

Lore

risposto 9 anni fa
Lore
Lore
1
X 0 X

Se riesci a mettere le quantità in un array puoi usare

array_count_values()

http://it2.php.net/manual/en/function.array-count-values.php

Grazie ragazzi per la mano, questo indirizzo che hai postato, mi è stato d'aiuto, solo che quando metto la variabile $cart che mi dà 2,2,2,2,2,2,2,2,2,2,1,1,3,3,3,3,3,3,3,3,3,3 in

$array = array($cart);
print_r(array_count_values($array));

mi esce questo: Array ( [2,2,2,2,2,2,2,2,2,2,1,1,3,3,3,3,3,3,3,3,3,3] => 1 )

poi provo a mettere gli stessi numeri al posto della variabile e mi dà giustamente Array ( [2] => 10 [1] => 2 [3] => 10 )

Come mai?

risposto 9 anni fa
dantefoxfox
X 0 X

Sinc non ho capito questo

poi provo a mettere gli stessi numeri al posto della variabile e mi dà giustamente Array ( [2] => 10 [1] => 2 [3] => 10 )

Come mai?

cmq io pensavo che questi

 2,2,2,2,2,2,2,2,2,2,1,1,3,3,3,3,3,3,3,3,3,3

fossero i valori di un array, invece da quanto ho capito, questa che ricevi è una stringa

allora dovresti fare così:

//$str sarà la stringa risultante dalla tua operazione
$str = "2,2,2,2,2,2,2,2,2,2,1,1,3,3,3,3,3,3,3,3,3,3";

$arr = explode(",",$str);

print_r(array_count_values($arr));

Spero di aver capito quello che ti serviva...

ciao

Lore

risposto 9 anni fa
Lore
Lore
1
X 0 X

basta un normale count() al posto di array_count_values()  :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Ragazzi, anzitutto, mille grazie per la pazienza  :-*

La soluzione postata da Lore è quella che mi è servita.

Grazie anche a te Gianni, ma a me serviva sapere la quantità singola per ogni articolo.

Scusatemi, ma io credevo  :P che un array fosse un insieme di dati e che la differenza con una variabile fosse rappresentata dalla pluralità di dati.

Array -> 2 o più dati

Variabile -> singolo dato

Adesso il risultato che mi dà è

Array ( [1] => 1 [2] => 1 [3] => 3 )

Se dovessi scriverlo in un data base come potrei fare per toglire Array () e lasciare solo [1] => 1 [2] => 1 [3] => 3

risposto 9 anni fa
dantefoxfox
X 0 X
Se dovessi scriverlo in un data base come potrei fare per toglire Array () e lasciare solo [1] => 1 [2] => 1 [3] => 3

Per dimostrarvi che non sono un fannullone,  O0 mi sono dato un po' da fare ed alla fine ci sono riuscito ;D

Ho fatto così:

$arr = explode(",",$cart);
$prod = array_count_values($arr);
while ($prod2 = each($prod))
echo "Prodotto nr$prod2[key]: $prod2[value]<br>";

#risultato:
#Prodotto nr1: 1
#Prodotto nr2: 1
#Prodotto nr3: 5
risposto 9 anni fa
dantefoxfox
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda