Lösches eines array Items !!
-
Hi,
ich habe folgendes Problem:
Ich muss ein Item aus einem 2D Array löschen. Jedoch nimmt das sehr viel zeit in anspruch.
Das array sieht ungefähr so bei mir aus
$Members[1..11][1...1024]
Items werden immer vom 2. Index gelöscht. zb. (1,2,5) sollen gelöscht werden.
DEL $Members[1..11][1]
DEL $Members[1..11][2]
DEL $Members[1..11][5]Jedoch ist die FUnktion die ich geschrieben habe schnecken langsam.
Evt. habt ihr eine Idee ?
function DeleteItemOfArray( &$array, $item ) { $part_1 = array_slice( $array, 0, $item ); $part_2 = array_slice( $array, $item+1, sizeof($array)-($item+1) ); $array = array_merge( $part_1, $part_2 ); }
Ciao
-
probiers mal mit unset()
-
Das Array muss ja an dieser Stelle zurück geschiftet weredn !!
Deswegen ist es nicht so einfach !!
-
gG schrieb:
Das Array muss ja an dieser Stelle zurück geschiftet weredn !!
Deswegen ist es nicht so einfach !!
unset taugt ganz gut dafür:
<?php $a = array(1, 3, 45, 44, 22, 33); print_r($a) . "\n"; unset($a[2]); print_r($a) . "\n"; ?>
Output:
Array ( [0] => 1 [1] => 3 [2] => 45 [3] => 44 [4] => 22 [5] => 33 ) Array ( [0] => 1 [1] => 3 [3] => 44 [4] => 22 [5] => 33 )
-
supertux schrieb:
Output:
Array ( [0] => 1 [1] => 3 [2] => 45 [3] => 44 [4] => 22 [5] => 33 ) Array ( [0] => 1 [1] => 3[b] [3] => 44 [4] => 22[/b] [5] => 33 )
Die 2. wurde übersprungen. Und das ist auch das Problem !
Ciao
-
und wo ist das Problem? Benutze foreach.
-
wenn du die indeces lueckenlos haben willst, wirst du kopieren muessen. geht nicht anders.
uU ist aber array_values() schneller als das slicen+mergen