Werte zweier Variablen tauschen

März 2010

In manchen Programmier-Vorhaben ist es vonnöten die Werte von zwei Variablen auszutauschen. Eine alte, allgemeine Methode ist das Benutzen einer temporären dritten Variable:
<?php
# Die beiden Variablen:
$a 'Wert A';
$b 'Wert B';
# Die Werte tauschen
$c $a;
$a $b;
$b $c;
# $b ist nun $a und umgekehrt
?>

Doch gibt es in PHP eine einfachere Ein-Zeilen-Methode, und zwar lässt sich hier das array() und das list()-Konstrukt "zweckentfremden". Mittels array() erzeugt man ein Array mit den beiden Variablen als Inhalt und mit list() weist man den Variablen die Werte aus dem Array wieder zu.
<?php
# Die beiden Variablen:
$a 'Wert A';
$b 'Wert B';
# Die Werte tauschen
list($b$a) = array($a$b);
# $b ist nun $a und umgekehrt
?>
Mit dieser Methode lassen sich auch mehr als zwei Variablen vertauschen. Hier werden die Werte den Variablen in umgekehrt-alphabetischer Reihenfolge wieder zugewiesen. Das heisst, die $a tauscht mit $d und $b mit $c:
<?php
# Die Variablen:
$a 'Wert A';
$b 'Wert B';
$c 'Wert C';
$d 'Wert D';
# Die Werte tauschen
list($d$c$b$a) = array($a$b$c$d);
?>

Siehe auch:
 
PHP


Andere Einträge


Kommentare

#1
von micha am 01.02.2011
der trick ist genial, elegant und so simpel und ich hab schon länger nach sowas gesucht. manchmal sieht man den wald vor lauter bäumen nicht.
danke !

#2
von tantetoni2 am 27.10.2011
so gehts auch

$a = 1;
$b = 2;
echo 'a: ' . $a . ' | b: ' . $b . '<br />';

extract( array( 'a' => $b, 'b' => $a ) );

echo 'a: ' . $a . ' | b: ' . $b;