PHP: Array-Problem
COLOSSUS 10.08.2003 - 12:00 482 5
COLOSSUS
AdministratorGNUltra
|
Ich habe 2 Arrays, beide nicht-assoziativ, mit numerischem Index und variabler Länge. Array1 hat (jeweils ohne Keys/Indizes) die Ausmaße 1*X; Array2 2*Y. Array1 ist kleiner als oder gleich groß wie Array2; jeweils ein Wert aus einer Zelle von Array1 kommt in der ersten Zelle ([0]) einer Zeile des 2. Arrays vor (d.h., die erste Spalte von Array2 beinhaltet alle Daten aus Array1, im ungünstigsten aber leider gebräuchlichen Fall aber auch weitere Daten). Nun will ich alle Werte, die in Array1 NICHT vorhanden sind, aus Array2 löschen, und dabei den dazugehörigen Wert in der zweiten Zelle der jeweiligen Zeile ([1]) auch killen. Ich hab gestern schon gute 4 Stunden mit anderen PHP-Problemen gebattlet, und da ich mich erst seit wenigen Tagen wieder ernsthafter damit beschäftige, fehlt mir die Erfahrung, um das Problem "bloß so" zu loesen. Meine Hoffnung setze ich darin, dass dies nicht auf alle hier zutrifft Sollte bei meinen obigen Ausführungen irgendetwas unklar sein, bitte ich um eine Anmerkung in diese Richtung. Tia für Input, colo.
|
watchout
Legendundead
|
Sollte bei meinen obigen Ausführungen irgendetwas unklar sein, bitte ich um eine Anmerkung in diese Richtung. was zum geier is X/Y? wo hast du beim array spalten?? dein problem versteh ich aber, aber den "hintergrund" nicht... lösung sollte eigentlich ganz simpel sein... auf jeden fall wär es praktisch wenn du das oben bemängelte noch ein bißchen verständlicher ausführen könntest (viell. graphisch?), dann schreib ich dir ne lösung
|
Ringding
Pilot
|
Ich find's verständlich genug. X, Y sind halt die Größen der Arrays, und wenn du ein 2-dimensionales Array als Tabelle aufschreibst, hast du auch Spalten (2-spaltig in seinem Fall)
|
watchout
Legendundead
|
hmm, ich denke ich habs jetzt auch geschnallt...: <?php
$array1 = [input]
$array2 = [input]
checkarray($array1,$array2);
function checkarray($ar_needle,$ar_haystack)
{
foreach ($ar_haystack as $key => $entry)
{
if(is_array($entry))
{
$ar_haystack[$key] = checkarray($ar_needle,$ar_haystack);
next;
}
else
{
if(!in_array($entry,$ar_needle))
{
unset($ar_haystack[$key]);
}
}
}
}
?>
[edit] aja: rekursiv
|
COLOSSUS
AdministratorGNUltra
|
Hab das Problem inzwischen schon anders gelöst. Danke trotzdem für die wie gewohnt großartige und kompetente Hilfe
|
watchout
Legendundead
|
Hab das Problem inzwischen schon anders gelöst.
Danke trotzdem für die wie gewohnt großartige und kompetente Hilfe magst deine erkenntnisse nicht mit uns teilen?
|