Array durch Referenz löschen

hoctar

Erfahrenes Mitglied
Hallo,
folgendes Beispiel:

PHP:
$t = array(
    1 =>'one',
    array(1 => 'two')
);

$a =& $t[2];

unset($a);

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

Wie man sieht wird das zweite Element (ein Array) nicht gelöscht, sondern wahrscheinlich nur die Referenz darauf.

Wie lösche ich das Array auf das $a zeigt?
 
Auf diese Art und Weise kommst du nicht an die Referenz dran, da [phpf]unset[/phpf] die Variable zurücksetzt und nicht das Ziel der Variable. Dementsprechend löschst du die Referenz auf $t[2].

Spontan fällt mir nur ein, die Variable zu überschreiben per:

PHP:
$a = NULL;

Dadurch bleibt der Arrayeintrag zwar bestehen, aber er ist prüfbar NULL.
 
Du könntest danach einmal kurz über das Array iterieren und die NULL Einträge löschen.

Alternativ iterierst du direkt über das Array, vergleichst mit der Referenz und löschst direkt in der Quelle den Eintrag.
 
Zurück