Pauli: PHP array

Moin, ich habe ein mehrdimensionales Array in PHP. Als Beispiel hier eine Tabelle mit 6 Zeilen und 6 Spalten:

myArray([5],[5])

Nun möchte ich eine Zeile ganz am Anfang einfügen, sodass mein array dann maximal so aussieht:

myArray([6],[5])

Wie bekomme ich das am einfachsten hin?

Vielen Dank schon mal, Paul

  1. Tach!

    Nun möchte ich eine Zeile ganz am Anfang einfügen, [...] Wie bekomme ich das am einfachsten hin?

    Mit einer der Array-Funktionen von PHP. Da gibts vier Stück, je eine zum Anfügen vorn und hinten und zum Entfernen vorn und hinten. Die heißen mit shift, unshift, pop und push im Namen.

    dedlfix.

  2. Hallo Pauli,

    es gibt in PHP keine mehrdimensionalen Arrays. Arrays sind eindimensional.

    Man kann ein mehrdimensionales Arrays simulieren, indem man Arrays als Elemente eines Arrays verwendet:

    $mdArr = ARRAY( 
               ARRAY(1,2,3),
               ARRAY(4,5,6)
             );
    

    Die naheliegende Auffassung wäre hier, dass man ein Array mit zwei Zeilen und drei Spalten hat. Es zwingt mich aber niemand, diese Regelmäßigkeit einzuhalten. Das Folgende ist in PHP genauso gültig, man nennt das ein zerklüftetes Array (jagged array) - oder wie auch immer man jagged übersetzen mag (schartig, zackig, rau, oder im AE Slang auch besoffen 😂).

    $mdArr = ARRAY( 
               ARRAY(1,2),
               ARRAY(3,4,5,6)
             );
    

    Aber bleiben wir bei einem rechteckigen Array. Wenn man das äußere Array als Container von Zeilen betrachtet, bedeutet das Einfügen einer neuen Zeile, dass man am Anfang dieses äußeren Arrays ein neues, leeres Array einschieben muss (array_unshift).

    Das Einfügen einer neuen Spalte ist dagegen mühsamer. In diesem Fall musst Du das äußere Array Eintrag für Eintrag durchgehen und in jeder Spalte einzeln das neue Element einfügen.

    Rolf

    --
    sumpsi - posui - clusi
    1. Danke Euch