![]() Mailinglisten-Archive |
Hallo Jungs (und M�dels), ich habe einen Array mit folgendem Aufbau $array1[0] = array("a" => 3, "b" => 3); $array1[1] = array("a" => 9, "b" => 3); $array1[2] = array("a" => 11, "b" => 11); $array1[3] = array("a" => 11, "b" => 11); $array1[4] = array("a" => 15, "b" => 11); $array1[5] = array("a" => 2, "b" => 2); Ich m�chte nun den array aufteilen in 2 arrays, wobei array1 alle Elemente enth�lt, wo a = b ist und array2 alle elemente mit a != b. Die richtige L�sung f�r obiges Zahlen beispiel w�re: gerade = 0,2,3,5 ungerade = 1,4 Gel�st habe ich das Problem mit folgendem Code: foreach ($array1 as $key = $val) { if ($val["a"] == $val["b"]) { $array2[] = array_splice($array1,$key,1); } } $array1 sollte nun nur noch aus den ungeraden Elementen bestehen, w�hrend $array2 alle geraden beinhaltet (mit einer etwas anderen Arraystruktur, aber das ist erstmal egal). Was aber herauskommt ist, dass $array1 (ungerade) 3 Elemente enth�lt. Der falsche fuffziger ist Element 3. In $array2 (gerade) sind zwar (korrekterweise) 4 Elemente vorhanden, aber das letzte Element ist leer. es fehlen die Daten von Element 3. Ich hab da einiges ausprobiert: Z.B. $array1 vorher kopiert und die Modifikation mit array_splice an dem unber�hrten array durchgef�hrt. Es bleibt bei diesem Fehler, ABER (jetzt kommts): Wenn ich die Bedingung genau andersrum formuliere mit if ($val["a"] != $val["b"]) arbeitet die Funktion korrekt. Probierts mal zuhause aus, ob ihr auf das gleiche Ph�nomen stosst. Ich benutze PHP 4.12 als Apachemodul unter Win2000. Ich bin der Meinung, dass ist ein Fehler in PHP. Aber vielleicht hab ich ja irgendein Detail �bersehen. Kl�rt mich auf. Gruss, Sascha
php::bar PHP Wiki - Listenarchive