Autor Zpráva
kazimir
Profil *
nevite nekdo jak nejjednoduseji najit a vypsat dve shodne hodnoty z pole napr
$pole[1]=5
$pole[2]=4
$pole[3]=3
$pole[4]=2
$pole[5]=5
$pole[6]=2
nelze pouzit array_search, najde jen prvni vyskyt a nechci na to pouzivat zadnou funkci s foreach, bylo by to jednoduche, ale ne efektivni

diky
nightfish
Profil
funkce na to není
řešit se to dá v (n - 1) + (n - 2) + ... + 2 + 1 = 2*n krocích (první porovnáš se všemy zbylými, druhý také se všemi zbylými)
nepoužíval bych foreach, ale dva vnořené cykly for
for ($i = 0; $i < count(n); $i++) {
  for ($j = 0; $j < $i; $j++) {
    if ($pole[$i] == $pole[j]) echo "indexy $i a $j maji shodne hodnotu ".$pole[$i]."<br>";
  }
}
kazimir
Profil *
diky, presne takto by to slo ale projit i foreach, dokonce je mysli foreach rychlejsi
Mastodont
Profil
nightfish
funkce na to není
Hm, a co array_count_values ?
kletely
Profil
nightfish
Zabudol si dolár. :)
...$pole[$j]...
koudi
Profil
Mastodont
Tim tak maximálně zjistíš, že duplicity más, ne konkrétně co.

nightfish
A není to spíš n^2 ?
nightfish
Profil
Mastodont
je to již dnes podruhé, co mi někdo rozšiřuje obzory - děkuji ti, tuhle funkci jsem v manuálu přehlédl
kazimir
Profil *
array_count_values by relativne slo pouzit, ale jeste potrebuji znat i indexy ne jen jestli existuuji a kolik jich je, takze cyklus bude asi nejvhodnejsi
nightfish
Profil
kletely
to je z toho střídání c, c#.net, javy, pm2, php, pascalu a javascriptu...
kazimir
Profil *
tak takto nabouchany bych take chtel byt, placam se, myslim, dobre v php a sql , ale JS to je pro me hluboky vesmir, o tom zbytku ani nemluvim, JS mi pripada prilis slozity. obcas se hodi, ale nez ho dam dokupy, stejne vse overuju jeste jednou phpkem
nightfish
Profil
koudi
A není to spíš n^2
porovnáš první s druhým, první s třetím, první se čtvrtým, ..., první s n-tým - to je n - 1 porovnání
pak porovnáš druhý s třetím, druhý se čtvrtým, druhý s pátým, ..., druhý s n-tým - to je n-2 porovnání
...
...
na závěr porovnáš (n-1). s n-tým - 1 porovnání
takže (n - 1) + (n - 2) + ... + 2 + 1 = (sečteš první s posledním, druhý s předposledním atd.) = (n - 1 + 1) + (n - 2 + 2) + (n - 3 + 3) + ... = n + n + n + ... = n*n = n^2 - samozřejmě (ale došlo mi to až teď, když jsem si to napsal)

kazimir
c, java, pm2 a javascript jsou školní projekty, takže tam rozumím jenom potřebným základům

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0