webForumDet fria alternativet

problem med array

5 svar · 230 visningar · startad av UrMe

UrMeMedlem sedan apr. 2001762 inlägg
#1

Jag har lite problem med en array.. förstår inte vad som är felet.. men ett hett tips är att jag har kodat fel ;)
Här kommer koden:

<?php

		$file = fopen("enfil.html", "r");

		if (!$file)
		{
		  echo "<p>Kan inte upprätta förbindelse med webplatsen nu.\n";
		  exit;
		}

		$character = array();
		$nr = 0;
		while (!feof($file))
		{
		  $line = fgets($file, 1024);

		  if (eregi("<character name=\"(.*)\" laston=\"(.*)\">",$line,$out))
		  {
			$character[0][$nr] = "$out[1]";
			$character[1][$nr] = "$out[2]";
		  }

		  if (eregi("<race>(.*)</race>",$line, $out))
		  {
		  	$character[2][$nr] ="$out[1]";
		  }

		  if (eregi("<class>(.*)</class>",$line, $out))
		  {
		  	$character[3][$nr] ="$out[1]";
		  }

		  if (eregi("<level>(.*)</level>",$line, $out))
		  {
		  	$character[4][$nr] ="$out[1]";
		  }

		  if (eregi("<guildrank>(.*)</guildrank>",$line, $out))
		  {
		  	$character[5][$nr] = "$out[1]";
		  }

		  if (eregi("<totalrp>(.*)</totalrp>",$line, $out))
		  {
		  	$character[6][$nr] = "$out[1]";
		  }

		  if (eregi("<lastweekrp>(.*)</lastweekrp>",$line, $out))
		  {
		  	$character[7][$nr] = "$out[1]";
		  }

		  if (eregi("<anon>(.*)</anon>",$line, $out))
		  {
		  	$character[8][$nr] = "$out[1]";
		  }

		  $nr++;
		}
		fclose($file);
?>

<html>
<body>

<?php
echo $character[0][5];
?>

</body>
</html>

Jag hämtar alltså en fil och öppnar den.. loopar igenom innehållet och vill lägga allt i en fin array men när jag får ett felmeddelande som ser ut så här:

Notice: Undefined offset: 5 in e:\projektmapp\webb\annat\xmltester\daoc\daoc2.php on line 69

och rad 69 är ju "echo $character[0][5];"

Säkert nåt jätte simpelt fel...

Tack på förhand!

ViktorMedlem sedan aug. 20021 752 inlägg
#2

Gå lopen igenom 6 ggr? Om inte så finns det ju ingen data på plats 5, det är det bästa jag kan komma med :)

/Viktor

UrMeMedlem sedan apr. 2001762 inlägg
#3

Loopen går ungefär 100ggr :)

EDIT: jag får inget felmeddelande längre.. men den verkar ändå inte lägga in nåt i arrayen.. men om jag t.ex tar "echo $out[1];" uppe i if-satsen så skriver den ut rätt.. nån som ser nåt fel när jag lägger in eller skriver ut arrayen?

UrMeMedlem sedan apr. 2001762 inlägg
#4

Denna enkla kod fungerar ju bra ..

<?php

for($nr = 0;$nr<5;$nr++)
{
	$hej[0][$nr] = "$nr";
}

echo $hej[0][3];

?>

förstår ingenting

UrMeMedlem sedan apr. 2001762 inlägg
#5

Det fungerar om jag t.ex sätter

character[0][0] = "$out[1]";

då lägger han in det.. men inte om det står $nr

*berättar bara hur mycket jag kommit på* :)

UrMeMedlem sedan apr. 2001762 inlägg
#6

Okej.. nu har jag lyckats hitta lite fel.. eller fel och fel.. problemet är att om en if-sats körs.. så går den inte in i de if-satserna utan han kör om while loopen igen.. därmed blir $nr helt konstiga..

EDIT: Så det jag fick göra var att göra en uppräknare för varje enskild if-sats... Tack för humm.. all hjälp :)

124 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)