webForumDet fria alternativet

Skriva ut array

8 svar · 727 visningar · startad av Swey

SweyMedlem sedan apr. 20002 000 inlägg
#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]

emissionMedlem sedan dec. 19996 095 inlägg
#2

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

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

SweyMedlem sedan apr. 20002 000 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]

emissionMedlem sedan dec. 19996 095 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?

SweyMedlem sedan apr. 20002 000 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...

SweyMedlem sedan apr. 20002 000 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...

emissionMedlem sedan dec. 19996 095 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?

SweyMedlem sedan apr. 20002 000 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]

emissionMedlem sedan dec. 19996 095 inlägg
#9

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

Genererad på 378 ms · cache AV · v20260730165559-full.f96bc7eb