[PHP] extract mit mehrdimensionalen arrays?

Bash, Shell, PHP, Python, Perl, CGI
ups
Posts: 12
Joined: 2003-08-01 15:40
Location: HH

[PHP] extract mit mehrdimensionalen arrays?

Post by ups »

hallo!

ich benutze extract(array); ein einer meiner funktionen. mit 2d-arrays funktioniert auch alles bestens. wenn ich jedoch einen 3d-array verwende, dann kann ich mit den schlüssel-namen nur auf das erste element des arrays zugreifen. wie kann ich dieses problem umgehen?

beispiel:

$array[0][name] = "benutzer";
$array[0][pass] = "geheim";
$array[1][name] = "user";
$array[1][pass] = "secret";

extract($array);

echo $name."<br>".$pass;

=> benutzer<br>geheim

danke im vorraus :)
kase
Posts: 1031
Joined: 2002-10-14 22:56

Re: [PHP] extract mit mehrdimensionalen arrays?

Post by kase »

Code: Select all

for ( $i=0; $i<count($array); $i++ )
{
      echo $array[$i]['name'] . "<br>" . $array[$i]['pass'];
}
Es würde sich auch eine foreach Schleife empfehlen, allerdings finde ich in solch einem Fall for Schleifen übersichtlicher. Mit extract würde ich ehrlich gesagt NIE arbeiten, sondern immer die Sachen im Array direkt ansprechen.
kase
Posts: 1031
Joined: 2002-10-14 22:56

Re: [PHP] extract mit mehrdimensionalen arrays?

Post by kase »

ups wrote: $array[0][name] = "benutzer";
$array[0][pass] = "geheim";
$array[1][name] = "user";
$array[1][pass] = "secret";
Ã?brigens solltest du auf keinen Fall die einfachen Anführungszeichen bei deinem "String-Index" vergessen:

$array[0][name] muss lauten $array[0]['name']

Da dein PHP womöglich falsch konfiguriert ist, erhälst du keine Fehlermeldung, bei richtiger Error-Config (Debug-Mode) solltest du aber einen "Implicit Constant to String Conversion" Error bekommen.
majortermi
Userprojekt
Userprojekt
Posts: 916
Joined: 2002-06-17 16:09

Re: [PHP] extract mit mehrdimensionalen arrays?

Post by majortermi »

kase wrote:Mit extract würde ich ehrlich gesagt NIE arbeiten, sondern immer die Sachen im Array direkt ansprechen.
ACK! "extract" ist geradezu eine Einladung für irgendwelche Angreife, wenn man nämlich nicht höllisch aufpasst, und sichergeht dass register_globals deaktiviert ist bzw. alle Variablen, die man danach anspricht, vor der Benutzung von "extract" initialisiert wurden, kann da jemand ganz einfach beliebige Werte einschmuggeln.
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
ups
Posts: 12
Joined: 2003-08-01 15:40
Location: HH

Re: [PHP] extract mit mehrdimensionalen arrays?

Post by ups »

okay, danke für die infos. habe die funktion umgeschrieben und komme jetzt ohne extract() aus :)