Robert: Bestimmte Array Werte löschen

Beitrag lesen

Hi,

$allkeys = array_keys($main_arr);
foreach($allkeys as $key => $value){
$check = explode("#@#",$value);
$reversekey = $check[1]. "#@#" . $check[0];

unset($main_arr[$reversekey]);
}

print_r($main_arr);

Hmm, jetzt wird irgendwie alles gelöscht.

Natürlich wird hier alles gelöscht, weil imprinzip dein gesammtes array rekursiv ist.

wenn du nur die doppelten löschen möchtest musst du die einträge vergleichen
und dann nur einen löschen.

so hier z.B.:

$allkeys = array_keys($main_arr);
$tmp = array();
foreach($allkeys as $key => $value)
{
  $check = explode("#@#",$value);
 $reversekey = $check[1]. "#@#" . $check[0];
 if (array_key_exists($reversekey,$main_arr) && !array_key_exists($reversekey,$tmp))
 {
  $tmp[$value] = 1;
  unset ($main_arr[$reversekey]);
 }
}

print_r($main_arr);

--
Selfcode: ie:{ fl:( br:> va:| ls:& fo:| rl:? n4:& ss:| de:/ js:} mo:) zu:}