Mittag!
Ich hab mich schon totgesucht und auch schon einige dutzende versionen probiert, aber es klappt nie so, wie ich will
Habe folgendes problem:
Ich habe ein mehrdimensionales array in folgender form:
dass array wird aus 3 arrays mit array_merge zusammengesetzt.
die 3 ursprungsarrays haben den selben aufbau, wie das array $daten oben.
Die 3 arrays heißen zum beispiel $source1, $source2 und $source3
jetzt kann es vorkommen, dass z.b. in $source1 und $source3 die selben Einträge vorkommen. wenn er nun diese mit array_merge zu $daten zusammenfügt, ist ja der eintrag doppelt oder gar dreifach da. er soll aber nur einmal vorkommen. deshalb muss er ja irgendwie das array aussortieren.
ich habs schon mit array_unique probiert, aber da löscht er mehrere, weil array_unique wohl nicht mit dem mehrdimensionalem klar kommt.
dann hab ich versucht, das array mit 2 verschachtelten for - schleifen zu vergleichen und bei doppelten einträgen nur ein eintrag in ein array schreiben
das ganze sieht dann so aus:
Er löscht bei dieser version zwar doppelte einträge, aber alle doppelten.
es soll ja aber einer stehen bleiben!
ich hoffe, dass ihr mein problem versteht und ob mir da jemand weiterhelfen kann?!
danke im voraus!
dioony
Ich hab mich schon totgesucht und auch schon einige dutzende versionen probiert, aber es klappt nie so, wie ich will
Habe folgendes problem:
Ich habe ein mehrdimensionales array in folgender form:
PHP-Code:
$daten[0]["id"]=1;
$daten[0]["name"]="muster";
$daten[0]["vorname"]="peter";
$daten[0]["ort"]="berlin";
$daten[1]["id"]=2;
$daten[1]["name"]="mann";
$daten[1]["vorname"]="klaus";
$daten[1]["ort"]="hamburg";
...
dass array wird aus 3 arrays mit array_merge zusammengesetzt.
die 3 ursprungsarrays haben den selben aufbau, wie das array $daten oben.
Die 3 arrays heißen zum beispiel $source1, $source2 und $source3
jetzt kann es vorkommen, dass z.b. in $source1 und $source3 die selben Einträge vorkommen. wenn er nun diese mit array_merge zu $daten zusammenfügt, ist ja der eintrag doppelt oder gar dreifach da. er soll aber nur einmal vorkommen. deshalb muss er ja irgendwie das array aussortieren.
ich habs schon mit array_unique probiert, aber da löscht er mehrere, weil array_unique wohl nicht mit dem mehrdimensionalem klar kommt.
dann hab ich versucht, das array mit 2 verschachtelten for - schleifen zu vergleichen und bei doppelten einträgen nur ein eintrag in ein array schreiben
das ganze sieht dann so aus:
PHP-Code:
$daten=array_merge($source1,$source2);
$dummy=array();
for($i=0;$i<count($daten);$i++)
{
$found=false;
for($j=0;$j<count($daten);$j++)
{
if($daten[$i]["id"]==$daten[$j]["id"] && $i!=$j)
//$i!=$j steht, damit er den vergleich von sich selbst ignoriert
{
$found=true;
};
};
if(!$found)
{
array_push($dummy,$daten[$i]);
};
};
$daten=$dummy;
es soll ja aber einer stehen bleiben!
ich hoffe, dass ihr mein problem versteht und ob mir da jemand weiterhelfen kann?!
danke im voraus!
dioony
Kommentar