Skriva ut array

PHP

8 svar · 733 visningar · startad av Swey

Medlem sedan apr. 20003 971 inlägg
Trådstart#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?

Medlem sedan dec. 19996 721 inlägg
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å.

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.

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 );

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 ) );
}
Medlem sedan dec. 19996 721 inlägg
#9

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

281 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
141 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
135 ms — ändringar (db)