Array richtig verwenden

Alice

Erfahrenes Mitglied
Hallo. Bitte nicht böse werden aber ich verstehe das mit den Arrays nicht so richtig. Ich weiss zwar im Kopf wie es abläuft, kann es aber nicht umsetzen.

PHP:
$var   = 'BMW';
$pfad = './images/sig/';
$format = '.png';

$var_array = array(
                               'Pfad'       => $pfad,
                               'Eingabe' => $var,  
                               'Format'   => $format
                             );

for($j=0; $j < 1; ++$j){ 
   $new_var = $var_array[Pfad].$var_array[Eingabe][$j].$var_array[Format];
}

echo "<pre>";
print_r($new_var);
echo "</pre>";

Es wird folgendes ausgegeben:
PHP:
Array
(
    [0] => ./images/sig/B.png
)

Es soll aber eigentlich folgendes ausgegeben werden:
PHP:
Array
(
    [0] => ./images/sig/B.png
    [1] => ./images/sig/M.png
    [2] => ./images/sig/W.png
)

Was mache ich falsch?
 
Dann müsste es aber so aussehen:
PHP:
$var    = 'BMW';
$pfad   = './images/sig/';
$format = '.png';

$letters = str_split($var);
foreach($letters as $i => $letter) {
  $letters[$i] = $pfad . $letter . $format;
}

echo '<pre>';
print_r($letters);
echo '</pre>';
Ansonsten: ich glaube nicht, dass du das Prinzip von Arrays verstanden hast.
 
Hallo bl500,

in
PHP:
for($j=0; $j < 1; ++$j){ 
   $new_var = $var_array[Pfad].$var_array[Eingabe][$j].$var_array[Format];
}
legst Du keinen Array an, sonder eine Variable die bei jedem Schleifendurchlauf immer überschrieben wird.

Versuch es mal mit:
PHP:
$new_var = array();
for($j=0; $j < 1; ++$j){ 
   $new_var[] = $var_array[Pfad].$var_array[Eingabe][$j].$var_array[Format];
}

Btw, seit wann funktioniert:
PHP:
$var_array[Pfad]
Ich dachte immer der Index muss als String rein.
PHP:
$var_array['Pfad']

Gruß
 
@Raisch: Das mit den Konstanten als Indizien funktioniert solange die Konstanten nicht definiert sind. PHP gibt in diesem Fall zwar eine Meldung vom Typ NOTICE aus, aber nutzt dann den Namen als entsprechenden Wert. Das Problem darin ist, dass es unsauber ist und dazu führen kann, dass beim nachträglichen Definieren solcher Konstanten Fehler auftreten.
 
@Raisch: Das mit den Konstanten als Indizien funktioniert solange die Konstanten nicht definiert sind. PHP gibt in diesem Fall zwar eine Meldung vom Typ NOTICE aus, aber nutzt dann den Namen als entsprechenden Wert. Das Problem darin ist, dass es unsauber ist und dazu führen kann, dass beim nachträglichen Definieren solcher Konstanten Fehler auftreten.
Dann ist ja gut, dann habe ich keine Änderung verschlafen. :D

Dank Dir.
 
Zurück