Multi dimesionell array i PHP

Tråden skapades och har fått 4 svar. Det senaste inlägget skrevs .
1

Jag har ett problem jag inte får till...
Jag vill göra en array som ser ut som följer:

"Namn1","1","2"
"Namn2","3","1"

Självklart ska den initieras "on the fly" tom och så ska jag mata in värden senare i koden...

Någon som har tips? Jag har kört fast.

  • Medlem
  • Sollefteå
  • 2005-05-31 14:21

Jag förstår inte riktigt vad du vill göra med arrayen.

Ska "Namn1","1","2" vara 3 index in i arrayen och du ska få ut ett värde från det? Typ såhär?

$myarr["Namn1"]["1"]["2"] = "Yes";
echo "Värdet är: " . $myarr["Namn1"]["1"]["2"];

Kanske är det såhör du menar, du vill ha en array som innehåller tre värden för varje rad. Typ ett personergister med namn, ålder och antal fötter.

$a[]=array("Namn1","17","2");
  $a[]=array("Namn2","42","1");

  echo "Andra namnet är:". $a[1][0]."<br>";
  echo "Andra namnets ålder är:". $a[1][1]."<br>";

Det jag vill göra är detta:
Med en while/for sats fyller jag på arrayen, alla värden är dynmiska.
Denna gång är det tre personer nästa gång kan det vara 4 eller 5.

arrayen med värden ser ut som följer:
array(1,2,3,4,5,6);

Loop 1:
$array['person1'][] = array("1", "");
$array['person2'][] = array("2", "");
$array['person3'][] = array("3", "");

Loop 2:
$array['person1'][] = array("1", "4");
$array['person2'][] = array("2", "5");
$array['person3'][] = array("3", "6");

Hämta:
echo $array['person3'][1][1]; // Skriver ut "6"

Frågan är hur jag får in person1 där:
$array[$name[0]][] = array(1,2);

Gör jag mig mer förståd nu?

Så här vill jag ha det... men får inte till det...

Med en while/for sats fyller jag på arrayen, alla värden är dynmiska.
Denna gång är det tre personer nästa gång kan det vara 4 eller 5.

arrayen med värden ser ut som följer:
$person = array("person1","person2","person3");
$array=array(1,2,3,4,5,6);

$b=0;
$pos = 0;

for($a=0;$a<count($array);$a++)
if($pos==0)
$array[person[$b]][] = array($array[$a], "");
else
$array[person[$b]][] = array("", $array[$a]); // Vid denna inmatning är värde 1 orört? eftersom det redan finns info i den positionen hur skyddar jag den?

$b++;
if($b==3)
{
$b=0;
$pos++;
}

såhär menar du?
läs mer om array_push: http://se.php.net/manual/en/function.array-push.php

$person = array("person1","person2","person3");
$array=array(1,2,3,4,5,6);

$b=0;
$pos = 0;

for($a=0;$a<count($array);$a++) {
	if($pos==0) {
		$array[person[$b]][] = array($array[$a]);
	} else {
		$array2 = array("", $array[$a]);
		array_push($array[person[$b]], $array2);
	}
	$b++;
	if($b==3) {
		$b=0;
		$pos++;
	}
}
1
Bevaka tråden