URL: https://www.overclockers.at/coding-stuff/php_suche_ob_gleiche_elemente_in_2_arrays_182037/page_1 - zur Vollversion wechseln!
Ich habe 2 Arrays. Nun will ich schauen, ob es gleiche Elemente gibt. in_array und search_array haben leider nicht funktioniert.
die Arrays sehen so aus:
array(2) {
[0]=>
string(1) "3"
[1]=>
string(1) "2"
}
Im Normalfall, haben sie unterschiedlich viele Elemente, aber sobald ein Element in beiden vorhanden ist, soll true zurückgeliefert werden. Gibt es da eine fertige Funktion oder muß ich mir da selber was schreiben?
tia
ich gehen in solchen fällen eigentlich jedesmal alle array-funktionen durch, auch wenn ich diese eigentlich schon auswendig kenne bzw. kennen sollte
http://at2.php.net/manual/de/ref.array.php
schätze nicht, dass es für dich eine vorgefertigte funktion geben wird. in deinem fall würde ich einfach ein foreach durch ein array machen und jedes element per in_array() im 2ten array suchen. glaub nicht, dass das wirklich über 3 zeilen code kommt.. ob das natürlich für dich performancemäßig ausreicht ist eine andere frage.
ja, bin die funktionen eh durchgegangen. aber hätte ja sein können, daß ich was übersehen habe. wäre nicht das erste mal, daß ich den wald vor lauter bäumen nicht seh
ist eh nicht viel abreit, aber eben performancelastiger als eine fertige funktion.
thx
was is an 2 forschleifen so schwer?
Kann in php net mit arrays umgehen, aber ich schreibs dir mal so halb C halb struktogrammmäßig auf:
1. Schauen welches array größer is
2. for(i=0; i< großes array; i++)
for(k=0;i<kleines array;k++)
if(großes array[i]==kleines array[k])
RETURN TRUE
so ich hoffe mal das stimmt so halbwegs und hilft dir XD
edit: got owned
2x "for" bzw. "foreach" wäre langsamer. sobald man auf integrierte php-funktionen zurückgreifen kann, sollte man das auch tun.
nix ist dran schwer, aber ist halt eine performancefrage wie mat schon geschrieben hat. außerdem reicht sogar ein foreach.
Code: PHPfunction in_array_loop($array1, $array2) { foreach($array1 AS $array) { if (in_array($array, $array2)) { return true; } } return false; }
Zitat von Burschi1620was is an 2 forschleifen so schwer?
Kann in php net mit arrays umgehen, aber ich schreibs dir mal so halb C halb struktogrammmäßig auf:
1. Schauen welches array größer is
2. for(i=0; i< großes array; i++)
for(k=0;i<kleines array;k++)
if(großes array[i]==kleines array[k])
RETURN TRUE
so ich hoffe mal das stimmt so halbwegs und hilft dir XD
edit: got owned
return count(array_intersect($a1, $a2)) > 0;
:P
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025