Array

Status
Niet open voor verdere reacties.

JeroenE

Terugkerende gebruiker
Lid geworden
20 mrt 2005
Berichten
1.950
Hallo,

Hoe komt het dat het volgende stuk script het getal niet weergeeft?
PHP:
$abc = array("1||een","2||twee","3||drie",.....,"100||honderd",...);
for ($ni = 0; $ni < count($abc); $ni++) {
$def = explode("||", $abc);
echo($def[0] . " blablabla " . $def[1] . "<br />");
};
De "$def[0]" blijkt leeg te zijn, met als gevolg dat ik dit krijg:
blablabla een
blablabla twee
...

Wat lost dit probleempje op?
 
Laatst bewerkt:
Je probeert een array te exploden ipv een string. Dit komt doordat je niet op de juiste manier door de array loopt. Probeer het eens zo:
PHP:
<?php
	$abc = array("1||een","2||twee","3||drie","100||honderd");
	foreach ($abc as $def) {
		$def = explode("||", $def);
		echo($def[0] . " blablabla " . $def[1] . "<br />");
	}
?>
 
Ligt het aan mij of is dit erg dubbel?

Waarom niet gewoon zo:
PHP:
$abc = array(
  "1" => "een",
  "2" => "twee",
  "3" => "drie",
  "100" => "honderd"
);
Als het om een gegenereerde array gaat kan dat nog steeds net zo:
PHP:
$abc = array();
// Iets uit database halen
while($row = mysql_fetch_assoc($result)) {
  $abc[$row['id']] = $row['beschrijving'];
}
print_r($abc);
 
Dank je wel, flitsflitsflits.
Het werkt.
ThaDevil, het gaat over alle postnummers van België die ik snel in een database wilde. Dat zijn er zo'n 2845, dus onbegonnen werk. Ik kon de hele lijst kopiëren en door in word de spatie tussen het postnummer en de gemeente te vervangen door een || en de linebreaks door ", " , heb ik het eenvoudig en snel kunnen in een array zetten om dan met dit scriptje in de tabel te zetten. Nu is dat gelukt, maar ik ben er wel zeker van dat ik jouw oplossing in de toekomst nog voor andere scripts zal kunnen gebruiken. Dank je wel.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan