Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]foreach - ma wystąpić tylko RAZ, jak wykonać?
casperii
post 16.09.2019, 22:00:21
Post #1





Grupa: Zarejestrowani
Postów: 680
Pomógł: 28
Dołączył: 14.08.2014

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


Panowie głupio się przyznać ale nie wiem jak ugryźć by wystąpienie danego słowa było tylko RAZ :

  1. foreach ($tablica as $var => $val){
  2.  
  3. echo $val['imie'];
  4.  
  5. foreach ($val['qq'] as $row){
  6. echo $row['lubi'];
  7. }
  8. }


i teraz chcę by imie jeśli w kolenym pętleniu wystąpiło już wcześniej to , żeby przeskakiwało aż będzie kolejne wcześniej nie wyechowane imie.
Nie wiem czy dobrze kombinuje, chyba trzeba by było wstawiać do tablicy i później sprawdzać z każdym pętleniem czy istnieje w tablicy ?

Ten post edytował casperii 16.09.2019, 22:05:02
Go to the top of the page
+Quote Post
trueblue
post 16.09.2019, 22:04:40
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Musisz sprawdzać czy aktualnie przetwarzane imię jest takie samo jako poprzednie. Jeśli takie samo, to nie drukujesz, jeśli inne, to drukujesz i ustawiasz aktualne jako poprzednie.
Poprzednie imię przechowujesz w zmiennej.


--------------------
Go to the top of the page
+Quote Post
casperii
post 16.09.2019, 22:10:28
Post #3





Grupa: Zarejestrowani
Postów: 680
Pomógł: 28
Dołączył: 14.08.2014

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


@trueblue czyli, że to by leciało tak:

$jakMaszNaimie = $val['imie'];
if($jakMaszNaimie == $val['imie'])
{
echo $val['imie'];
}else{

$jakMaszNaimie = $val['imie'];

}
Go to the top of the page
+Quote Post
trueblue
post 16.09.2019, 22:14:23
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


A patrzyłeś czy działa? Bo mi się wydaje, że ten kod jest zupełnie bezużyteczny.


--------------------
Go to the top of the page
+Quote Post
casperii
post 16.09.2019, 22:15:11
Post #5





Grupa: Zarejestrowani
Postów: 680
Pomógł: 28
Dołączył: 14.08.2014

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


własnie sprawdziłem i nie cyka
Go to the top of the page
+Quote Post
Neutral
post 16.09.2019, 23:27:40
Post #6





Grupa: Zarejestrowani
Postów: 286
Pomógł: 46
Dołączył: 10.01.2016

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


Napisz instrukcję warunkową if i później w ciele ifa, napisz mniej więcej tak continue 2; lub continue 1; zależnie od tego, którą pętlę chcesz przeskoczyć zewnętrzną, czy wewnętrzną.
Go to the top of the page
+Quote Post
Tomplus
post 17.09.2019, 06:32:34
Post #7





Grupa: Zarejestrowani
Postów: 1 828
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

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


Spójrz na to proste rozwiązanie. Tworzysz specjalny kontener czyli tablicę $imieIstnieje a następinie sprawdzasz funkcją in_array() czy dane imię jest już w tablicy, jeżeli jest to nie wykonujesz funkcji. Dodatkowo od razu dodajesz nowe imię do tablicy używają najlepiej array_push()


  1. $imieIstnieje = [];
  2. foreach($tablica as $k=>$val) {
  3. if (!in_array($val['imie'], $imieIstnieje)) {
  4. echo $val['imie'].'<br>';
  5. array_push($imieIstnieje, $val['imie']);
  6. }
  7.  
  8. }


z resztą sobie poradzisz.

Ten post edytował Tomplus 17.09.2019, 06:33:14
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 13:53