Newsgroup: it.comp.www.php
Titolo: punto e foreach

Ciao a tutti,
sto uscendo pazzo con un ciclo foreach su un array.
L'array in questione viene valorizzato da una query al DB.
Il problema:
il ciclo foreach non mi stampa tutte le coppie di valori presenti 
nell'array. Sembra che si incricchi sul carattere punto "." contenuto in 
alcune chiavi dell'array. Il bello è che le prime chiavi contengono il 
"." vengono visualizzate, mentre altre no.
Posto il codice così si capisce meglio:
$nuovo_arr=array("Cinquecento"=>"0","1.2 Benzina"=>"16","1.3 
Diesel"=>"18","1.4 Benzina"=>"17","Doblò"=>"0","1.2 Benzina"=>"1","1.3 
Diesel"=>"4","1.4 Benzina"=>"2","1.6 Benzina"=>"3","1.9 Diesel"=>"5","G. 
Punto"=>"0","1.2 Benzina"=>"38","1.3 Diesel"=>"40","1.4 
Benzina"=>"39","1.6 Diesel"=>"41","1.9 Diesel"=>"42","Idea"=>"0","1.2 
Benzina"=>"10","1.3 Diesel"=>"14","1.4 Benzina"=>"11","1.6 
Benzina"=>"12","1.8 Benzina"=>"13","1.9 
Diesel"=>"15","Multipla"=>"0","1.6 Benzina"=>"23","1.9 Diesel"=>"24","N. 
Bravo"=>"0","1.4 Benzina"=>"34","1.6 Diesel"=>"35","1.9 
Diesel"=>"36","2.0 Diesel"=>"37","N. Croma"=>"0","1.8 
Benzina"=>"30","1.9 Diesel"=>"32","2.2 Benzina"=>"31","2.4 
Diesel"=>"33","Panda"=>"0","1.1 Benzina"=>"19","1.2 Benzina"=>"20","1.3 
Diesel"=>"22","1.4 Benzina"=>"21","Punto 188"=>"0","1.2 
Benzina"=>"25","1.3 Diesel"=>"28","1.4 Benzina"=>"26","1.8 
Benzina"=>"27","1.9 Diesel"=>"29","Sedici"=>"0","1.6 Benzina"=>"45","1.9 
Diesel"=>"46","Seicento"=>"0","1.1 Benzina"=>"44","900 
Benzina"=>"43","Stilo"=>"0","1.2 Benzina"=>"47","1.4 Benzina"=>"48","1.6 
Benzina"=>"49","1.8 Benzina"=>"50","1.9 Diesel"=>"52","2.4 
Benzina"=>"51","Ulysse"=>"0","1.9 Diesel"=>"8","2.0 Benzina"=>"6","2.1 
Diesel"=>"9","2.2 Benzina"=>"7");
 
	$text="<BR><BR><STRONG>CICLO FOREACH</STRONG><BR>";
		foreach ($nuovo_arr as $key=>$value)
		{
		  //		  $value = cms_htmlentities($value);
 
		$text = $text."value = ".$value." ---> key = ". $key."<br>";
 
		}
	//}
	echo $text;
Questo il risultato:
CICLO FOREACH
value = 0 ---> key = Cinquecento
value = 47 ---> key = 1.2 Benzina
value = 28 ---> key = 1.3 Diesel
value = 48 ---> key = 1.4 Benzina
value = 0 ---> key = Doblò
value = 49 ---> key = 1.6 Benzina
value = 8 ---> key = 1.9 Diesel
value = 0 ---> key = G. Punto
value = 35 ---> key = 1.6 Diesel
value = 0 ---> key = Idea
value = 50 ---> key = 1.8 Benzina
value = 0 ---> key = Multipla
value = 0 ---> key = N. Bravo
value = 37 ---> key = 2.0 Diesel
value = 0 ---> key = N. Croma
value = 7 ---> key = 2.2 Benzina
value = 33 ---> key = 2.4 Diesel
value = 0 ---> key = Panda
value = 44 ---> key = 1.1 Benzina
value = 0 ---> key = Punto 188
value = 0 ---> key = Sedici
value = 0 ---> key = Seicento
value = 43 ---> key = 900 Benzina
value = 0 ---> key = Stilo
value = 51 ---> key = 2.4 Benzina
value = 0 ---> key = Ulysse
value = 6 ---> key = 2.0 Benzina
value = 9 ---> key = 2.1 Diesel
Se tolgo il punto dopo la chiave "Multipla", facendo diventare "1.6 
Benzina" così "16 Benzina", questa chiave viene stampata mentre prima 
non lo era.
Qualcuno può aiutarmi?
grazie.

 "." vengono visualizzate, mentre altre no.
No, e' che tu usando il costrutto "indice"=>"valore" duplichi l'indice.
Dopo la Multipla la entry e'  "1.6 Benzina"=>"23"  ma in nona posizione hai gia'
"1.6 Benzina"=>"3"
L'indice dell'array deve essere ovviamente univoco altrimenti che indice e'? :)
http://it.php.net/manual/en/function.array.php
Ciao,
luigi
-- 
/
+--[Luigi Rosa]--
\
The more complex the mind, the greater the need for the simplicity of play.
    --James Kirk, "Shore Leave"

 "1.6 Benzina"=>"3"
Ma lol !!!!

 
Grazie! Ancora non ho preso la mano con array e loop..

 Grazie! Ancora non ho preso la mano con array e loop..
aspetta di vedere il casino degli oggetti allora! :) :) :)
Ciao,
luigi
-- 
/
+--[Luigi Rosa]--
\
It's a poor workman who blames his tools.