webForumDet fria alternativet

Skriva ut array

PHP

8 svar · 729 visningar · startad av Swey

Medlem sedan apr. 20003 971 inlägg
Frågan#1
$a[0] = "1";
$a[5] = "2";

reset( $a );
do
{
	echo key( $a ) . " = " . current( $a ) . "<br>";
}

finns det något annat sätt? detta sätt fungerar men är inte särskilt flexibelt.

här är ett sätt som är mer flexibelt men fungerar bara på nollbaserade vektorer.

for( $no = 0; $no < count( $a ); $no++ )
	echo "$no = ". $a[$no] . "<br>";

kanske finns det en funktion för att skriva ut en array?

------------------
/mvh Swey

#webForum @ DALnet
- All you need is Swey, la la la la...

[Redigerat av Swey den 21 jun 2000]

Medlem sedan dec. 19996 721 inlägg
#2

http://www.php.net/manual/function.each.php

------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB

Medlem sedan apr. 20003 971 inlägg
#3

öh, tack för den adressen... vad ska jag med den till? det vore väldigt bra om du kunde förklara hur du tänker också.

------------------
/mvh Swey

#webForum @ DALnet
- All you need is Swey, la la la la...

[Redigerat av Swey den 21 jun 2000]

Medlem sedan dec. 19996 721 inlägg
#4

Oki. Missförstod nog kanske vad du ville göra, men each använder man i alla fall när man vill traversera en array. Den funkar som current, men flyttar fram pekaren också.

Vill du ha en funktion som listar valfri array?

Medlem sedan apr. 20003 971 inlägg
#5

ah, får prova lite.

Jag skriver just nu om vektorer i min kurs och vill gärna skriva så bra som möjligt och en funktion för att visa en array vore bra att ha med för testning t.ex.

------------------
/mvh Swey

#webForum @ DALnet
- All you need is Swey, la la la la...

Medlem sedan apr. 20003 971 inlägg
#6

each förstod jag mig inte på.

Finns det något sätt för att kolla om arrayen är på sista posten när man har använt next()?

typ som
while( någonting )
$a = next( $array );

------------------
/mvh Swey

#webForum @ DALnet
- All you need is Swey, la la la la...

Medlem sedan dec. 19996 721 inlägg
#7

Each är inte så knepigt, även om det inte fungerar like självklart som i Perl.

$a[0] = "1";
$a[5] = "2";
reset($a);
while ($tmp=each($a)){
  echo "$tmp[0] = $tmp[1]<BR>"; 
}

listar arrayen $a. each hämtar en position i arrayen, lägger värdet i $tmp, som sedan har indexet/nyckeln i $tmp[0] och värdet i $tmp[1]. Inte helt logiskt (och inte det enda sättet), men effektivt.

Jag gjorde en litenb funktion som listar valfri array i en html-tabell. Den klarar även flerdimensionella arrayer.

function listarray($inarray){

  echo "<table border=1>\n";
  reset($inarray);
  while ($tmp=each($inarray)){
    echo "<tr><td>";
    echo "$tmp[0]</td><td>";
    if (is_array($tmp[1])){
      listarray($tmp[1]);
    }
    else {
      echo $tmp[1];
    }
    echo "</td></tr>";
  }
  echo "</table>";
}

Kan det vara något?

Medlem sedan apr. 20003 971 inlägg
#8

Jo, det tror jag... tackar... ska prova sen

Har även gjort följande kod. Är den okej att använda?

$kalle = array( "Namn" => "Kalle", "Ålder" => 72, "Bor" => "Ankeborg" ); 
if( reset( $kalle ) )
{
    do
    {
        echo key( $kalle ) . " = " . current( $kalle ) . "<br>";
    }
    while( next( $kalle ) );
}

------------------
/mvh Swey

#webForum @ DALnet
- All you need is Swey, la la la la...

[Redigerat av Swey den 21 jun 2000]

Medlem sedan dec. 19996 721 inlägg
#9

Ja, varför inte? Ser helt okej ut.

264 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)