Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Pomieszanie tablicy wielowymiarowej w jednowymiarowa
Octobus
post
Post #1





Grupa: Zarejestrowani
Postów: 259
Pomógł: 1
Dołączył: 3.07.2011

Ostrzeżenie: (0%)
-----


Witam, musze pomieszac pewna ilocs tablic wielowymiarowych gdzie kazda tablica zawiera liste adresow z 1 domeny. Wiec przy 3 tablicach mamy 3 domeny w ktorych jest jakas ilosc adresow. Chce zrobic tak zeby te tablice pomieszac w ten sposob zeby adresy z jednej domeny nie wystepowaly obok siebie czyli

Kod
[google.pl]
http://google.pl/adres1
http://google.pl/adres2
http://google.pl/adres3
[yahoo.com]
http://yahoo.com/adres1
http://yahoo.com/adres2
http://yahoo.com/adres3


i chce zeby z tego powstalo:
Kod
http://google.pl/adres1
http://yahoo.com/adres1
http://google.pl/adres2
http://yahoo.com/adres2
http://google.pl/adres3
http://yahoo.com/adres3


Problem w tym ze tych tablic z domenami moze byc bardzo poniewaz listy adresow do pomieszania moga byc ponad 100 000 adresow dochodzace nawet do miliona ... Napisalem skrypt ktory to robi ale przy duzych adresach bedzie rzeznia ;/




  1. while($url = $lista_url->fetch_assoc()){
  2. $lista_temp[] = $url['URL'];
  3. $adres = parse_url($url['URL']);
  4. $lista[$adres['host']][] = $url['URL'];
  5. }
  6.  
  7.  
  8.  
  9. //szukaj max w najwiekszej liscie
  10. $max = 0;
  11. foreach($lista as $n=>$v){
  12. $tablice[] = $n;
  13. $x = count($v);
  14. if($x > $max)
  15. $max = $x;
  16. }
  17.  
  18. $x = 0;
  19. //przelec listy od 0 do max
  20. for($x; $x<=$max; $x++){
  21. foreach($tablice as $n=>$v){
  22. if(isset($lista[$v][$x])){
  23. $nowa_lista[] = $lista[$v][$x];
  24. }else{
  25. unset($tablice[$n]);
  26. }
  27. }
  28.  
  29. }


Skrypt ma 1800 wykonań przy 1785 adresach wiec troche lipa ;/
Shuffle jak zastosuje adresy beda obok siebie wiec nie rozwiazuje to do konca problemu ;/
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 17:17