ebody: Array Key Nummer in Text ändern und weitere Wert pro Element ergänzen

Hallo,

ich habe ein einfaches Array

$arr = array('lorem','ipsum','dolor');

Als erstes möchte ich die Index Werte in einen Text ändern. Statt

[0]=>'lorem',

[1]=>'ipsum',

[2]=>'dolor'

Müsste es so aussehen:

[0]['wert'] => 'lorem',

[1]['wert'] => 'ipsum',

[2]['wert'] => 'dolor'

Dann möchte ich jedem Element weitere Index Werte nachträglich hinzufügen:

[0]['wert'] => 'lorem',

[0]['gewicht'] => '4',

[0]['groesse'] => '2',

[1]['wert'] => 'ipsum',

[1]['gewicht'] => '8',

[1]['groesse'] => '3',

[2]['wert'] => 'dolor'

[2]['gewicht'] => '1'

[2]['groesse'] => '6'

Wie kann man das am besten machen?

Gruß ebody

akzeptierte Antworten

  1. Erstell das Array von Anfang an richtig.

  2. Hello,

    ich habe ein einfaches Array

    $arr = array('lorem','ipsum','dolor');

    Als erstes möchte ich die Index Werte in einen Text ändern. Statt

    [0]=>'lorem',

    [1]=>'ipsum',

    [2]=>'dolor'

    Müsste es so aussehen:

    [0]['wert'] => 'lorem',

    [1]['wert'] => 'ipsum',

    [2]['wert'] => 'dolor'

    
    foreach($arr as $key => $value)
    {
        $arr[$key] = array('wert' => $value);
    }
    
    echo "<pre>\r\n";
    echo htmlspecialchars(print_r($arr),1)) . "\r\n";
    echo "</pre>\r\n";
    

    Wenn das Array-Element bereits einen skaleren Wert oder einen String trägt, muss man es vollständig überschreiben mit dem neuen Typ (array).

    Dann möchte ich jedem Element weitere Index Werte nachträglich hinzufügen:

    [0]['wert'] => 'lorem',

    [0]['gewicht'] => '4',

    [0]['groesse'] => '2',

    Das sollte jetzt einfach möglich sein, da $arr[0] ja nun selbst ein array ist.

    Du kannst das Array aber ach anders herum aufbauen.

    $_data['wert'][0] = 'lorem';
    $_data['gewicht'][0] = '10';
    $_data['gewichtseinheit'][0] = 'kg';
    $_data['kunde'][0] = 'Kalle Schwobbel';
    
    $_data['wert'][1] = 'ipsum';
    $_data['gewicht'][1] = '12';
    $_data['gewichtseinheit'][1] = 't';
    $_data['kunde'][1] = 'Firma Pillenpulle';
    
    

    siehe Wiki "Arrays mal anders herum"

    Der Aufbau anders herum ha tden Vorteil, dass man auf die einzelnen "Spalten" direkt die Standard-Array-Funktionen, wie sum(), sort(), usw. anwenden kann.

    Liebe Grüße
    Tom S.

    --
    Die Krawatte ist das Kopftuch des Westens
  3. Tach!

    ich habe ein einfaches Array

    $arr = array('lorem','ipsum','dolor');

    Als erstes möchte ich die Index Werte in einen Text ändern.

    Vermutlich ist es auch in deinem Fall nicht nötig, das originale Array umzubauen. Stattdessen könntest du einfach nur durch dieses hindurchlaufen und ein neues anlegen, das deinen Wünschen entspricht.

    dedlfix.