Index aus assoziativem Array auslesen
Hallo,
wie kann ich aus einem assoziativen array den tatsächlichen internen
Index herauskriegen?
Ich habe z.B. ein Array aus einem Formular (für Dateiupload) $_FILES
und weiss dass
$_FILES["attachment_1"]["tmp_name"]
existiert, sowie auch
$_FILES["attachment_2"]["tmp_name"]
und das array auch nur zwei elemente enthält.
Also müsste doch folglich
$_FILES[0]["tmp_name"] und $_FILES[1]["tmp_name"]
funktionieren? Ich kriege aber:
Undefined offset: 0
(bzw. Undefined offset: 1)
Gruss franc
Re: Index aus assoziativem Array auslesen
Franc Walter schrieb:
> wie kann ich aus einem assoziativen array den tatsächlichen internen
> Index herauskriegen?
Kommt drauf an wofür du es brauchst. Wenn das Array durchläufst kannst
ja ein Counter mitlauefen lassen.
> Ich habe z.B. ein Array aus einem Formular (für Dateiupload) $_FILES
> und weiss dass
>
> $_FILES["attachment_1"]["tmp_name"]
>
> existiert, sowie auch
>
> $_FILES["attachment_2"]["tmp_name"]
>
> und das array auch nur zwei elemente enthält.
> Also müsste doch folglich
>
> $_FILES[0]["tmp_name"] und $_FILES[1]["tmp_name"]
>
> funktionieren? Ich kriege aber:
wieso sollte bei einem assoziativem Array gleichzeitig die numerischen
Werte gefüllt sein?
--
Mit freundlichen Grüßen,
Christoph Herrmann
http://dragonprojects.de/
Re: Index aus assoziativem Array auslesen
> Kommt drauf an wofür du es brauchst. Wenn das Array durchläufst kannst=
> ja ein Counter mitlauefen lassen.
Ich dachte ein Array hat grundsätzlich einen Index und evtl. nur einen
Namen (assoz. Array).
>
> wieso sollte bei einem assoziativem Array gleichzeitig die numerischen
> Werte gefüllt sein?
>
also z.b. mit:
foreach ($$_FILES as $key =3D> $value) {
echo "Schlüssel: $key; Wert: $value
\n";
}
Re: Index aus assoziativem Array auslesen
Franc Walter schrieb:
> Hallo,
> wie kann ich aus einem assoziativen array den tatsächlichen internen
> Index herauskriegen?
Geht so nicht. Wenn Du aber über die Dateien iterieren willst (was ich
vermute), kannst Du array_keys verwenden. Alternativ habe ich kurz das
probiert:
echo <<<EOD
<form method="post" enctype="multipart/form-data">
<input type="file" name="upload[]" />
<input type="file" name="upload[]" />
<input type="file" name="upload[]" />
<input type="submit" name="send" />
</form>
EOD;
ergibt:
Array
(
[upload] => Array
(
[name] => Array
(
[0] => bild.jpg
[1] =>
[2] =>
)
[type] => Array
(
[0] =>
[1] =>
[2] =>
)
[tmp_name] => Array
(
[0] =>
[1] =>
[2] =>
)
[error] => Array
(
[0] => 1
[1] => 4
[2] => 4
)
[size] => Array
(
[0] => 0
[1] => 0
[2] => 0
)
)
)
--
Mein Zeugs:
http://www.hadanite-marasek.de/classes.php
http://www.objektivsuche.de/
Ansonsten:
http://www.php-faq.de/q/q-newsgroup-wie-helfen.html
Re: Index aus assoziativem Array auslesen
> also z.b. mit:
> foreach ($$_FILES as $key => $value) {
> echo "Schlüssel: $key; Wert: $value
\n";
> }
Nimm $keys = array_keys($_FILES), dann bekommst Du
Array
(
[0] => upload_1
[1] => upload_2
[2] => upload_3
)
dann:
foreach($keys as $value) {
echo $_FILES[$value]["tmp_name"];
}
--
Mein Zeugs:
http://www.hadanite-marasek.de/classes.php
http://www.objektivsuche.de/
Ansonsten:
http://www.php-faq.de/q/q-newsgroup-wie-helfen.html
Re: Index aus assoziativem Array auslesen
SUPER!!! Vielen DANK!
Re: Index aus assoziativem Array auslesen
Franc Walter schrieb:
> Ich dachte ein Array hat grundsätzlich einen Index und evtl. nur einen
> Namen (assoz. Array).
Dann denkst Du falsch.
Ein Array-Element hat einen Key, der entweder numerisch oder ein String
ist. Innerhalb eines Arrays können beide Varianten auftauchen, aber
niemals gleichzeitig bei ein- und demselben Element.
Gruß. Claus
Re: Index aus assoziativem Array auslesen
> Ein Array-Element hat einen Key, der entweder numerisch oder ein String
> ist. Innerhalb eines Arrays können beide Varianten auftauchen, aber
> niemals gleichzeitig bei ein- und demselben Element.
Ach soooooo! Danke Claus!
Kenne mich noch viel zu wenig mit PHP aus :-)