Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Grupowanie elementów listy
Forum PHP.pl > Forum > PHP
Destrudo
Hej,

Mam listę, która pokazuje linki, przykład:

https://pl.wikipedia.org/wiki/xkhksa
https://pl.wikipedia.org/wiki/fdgdf
https://pl.wikipedia.org/wiki/trtert

I teraz chciałbym dodać taki warunek, który sprawdzałby, czy elementy listy do znaku / mają taki sam ciąg, czyli w powyższym przykładzie pokazałoby 1 wynik (obojętnie który), bo do / występującego po pierwszych dwóch // mają taki sam ciąg znaków, czyli pl.wikipedia.org. Zastanawiam się, jakby to obrobić
pmir13
  1. $links = array ( "https://pl.wikipedia.org/wiki/xkhksa",
  2. "https://pl.wikipedia.org/wiki/fdgdf",
  3. "https://pl.wikipedia.org/wiki/trtert",
  4. "https://en.wikipedia.org/wiki/fdgdf" );
  5.  
  6. $grlinks = array();
  7.  
  8. foreach( $links as $key => $url )
  9. $grlinks[substr($url,0,strpos($url,'/',9))]=$url;
  10.  
  11. $grlinks=array_values($grlinks);
  12.  
  13. print_r($grlinks);


Kod
Array ( [0] => https://pl.wikipedia.org/wiki/trtert [1] => https://en.wikipedia.org/wiki/fdgdf )
Destrudo
To prawie to, ale co jeśli link będzie zamiast https to http? np tak:

https://pl.wikipedia.org/wiki/xkhksa
http://pl.wikipedia.org/wiki/fdgdf
https://pl.wikipedia.org/wiki/trtert

W powyższej liście też chciałbym to pogrupować do jednego
trueblue
Podmień pętlę na:

  1. foreach( $links as $url ){
  2. $parsed=parse_url($url);
  3. $grlinks[$parsed['scheme'].'//'.$parsed['host']]=$url;
  4. }


'//' jest właściwie niepotrzebne jeśli będziesz wyciągał same wartości z tablicy.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.