Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Pętla for i łączenie tych samych wartości w 1 wiersz, jak wykonać?
casperii
post
Post #1





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

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


Panowie mam pytanie odnośnie pętli for.
Otóż mam kod , sprawdzam wielkość elementów w tablicy :

  1. $wielkosc = count($tablica);


następnie po określeniu wielkości tablicy tworzę pętle w której odwołuje się do danego elementu:

  1. for($i=0; $i < $wielkosc; $i++){
  2.  
  3. echo 'pobieram cos: '.$wielkosc[$i];
  4. echo '<br>';
  5. echo 'tu mam druga tablice z mailem: '.$tablicaEmail[$i];
  6. echo '<br>';
  7. echo 'tu mam jakies dane: '.$tablicaDane[$i];
  8. }


Tablice są i będą zawsze tej samej długości , problem w tym , że tablica tablicaEmail może mieć ten sam adres email ale w tablicy tablicaDane inne wartości.
Chcę wykonać żeby adresy email te same przypisywały do siebie dane z tablicy dane. Nie wiem czy ktoś kuma o co chodzi , więc może rozrysuje:


array(5) { [0]=> string(2) "10" [1]=> string(2) "20" [2]=> string(2) "30" [3]=> string(2) "40" [4]=> string(5) "50,60" }

array(5) { [0]=> string(14) "fajny@adres.pl" [1]=> string(18) "niefajny@adres.com" [2]=> string(14) "brak@adresu.pl" [3]=> string(16) "niemam@adresu.pl" [4]=> string(14) "fajny@adres.pl" }


Jak zauważysz pierwszy i ostatni element w tablicy ma ten sam adres "fajny@adres.pl" zatem powinno wyświetlić:

fajny@adres.pl :
ma wartość : 10, 50, 60

Chyba musiałbym każdy element N z tablicy przeszukiwać po tablicy i porównywać go z no własnie jak to ugryźć.

Ten post edytował casperii 14.07.2019, 16:42:01
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Neutral
post
Post #2





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

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


Kod
.content1::before, .content2::before {
  display: inline;
  padding-right: 5%;
}
.content1::before {
  content: 'key:';
}
.content2::before {
  content: 'value:';
}
.even_odd:nth-child(even) {
  background: lightgreen;
}
.even_odd:nth-child(odd) {
  background: green;
}


  1. <body style="background: darkgoldenrod;">
  2. <pre>


  1. <?php
  2.  
  3. $a = array("hello","hello","not","hello","hello","mouse");
  4. $b = array("zero","one", "two", "three","hello","fish");
  5.  
  6. $arr = [];
  7.  
  8. $count_els = (count($a) == count($b)) ? count($a) : 0;
  9.  
  10. for($i=0;$i<$count_els;$i++) {
  11. $arr[] = [$a[$i], $b[$i]];
  12. }
  13.  
  14.  
  15.  
  16. for($i=0;$i<count($arr);$i++) {
  17. for($j=1;$j<count($arr);$j++) {
  18.  
  19. if($arr[$i][0] == $arr[$j][0] && $i != $j) {
  20. $arr[$i][] = $arr[$j][1];
  21. unset($arr[$j]);
  22. $arr = array_values($arr);
  23.  
  24. $j--;
  25. }
  26. }
  27. }
  28.  
  29.  
  30.  
  31. for($i=0;$i<count($arr);$i++) {
  32. echo '<div class="even_odd">';
  33. echo '<span class="content1">'.$arr[$i][0].'</span>'.':<br />';
  34. for($j=1;$j<count($arr[$i]);$j++) {
  35. echo '<span class="content2">'.$arr[$i][$j].'</span>'. '<br />';
  36. }
  37. echo '</div>';
  38. }
  39.  
  40. ?>


  1. </body>


Pierwszy indeks jest "kluczem" ($arr[$i][0]).

Zamiast array_values() można chyba zastosować continue wraz ze zmienną zapamiętującą ostatni wyrzucony indeks, ale nie jestem pewien, co do tego rozwiązania; trzeba byłoby sprawdzić.

Ten post edytował Neutral 14.07.2019, 19:10:00
Go to the top of the page
+Quote Post

Posty w temacie
- casperii   [PHP]Pętla for i łączenie tych samych wartości w 1 wiersz   14.07.2019, 16:38:03
- - Neutral   Kod.content1::before, .content2::b...   14.07.2019, 18:57:14
- - nospor   @Neutral, wydaje mi sie ze pomysl z ta macierza je...   15.07.2019, 14:51:18
- - dublinka   lub tak [PHP] pobierz, plaintext $a = [keys......   15.07.2019, 18:04:17
- - trueblue   "50,60" to string, nie tablica.   16.07.2019, 11:43:01
|- - dublinka   Cytat(trueblue @ 16.07.2019, 11:43:01...   16.07.2019, 12:19:20
- - nospor   Wiemy W czym problem?   16.07.2019, 11:46:23
- - trueblue   W tym, że "50,60" będzie przypisane do e...   16.07.2019, 13:25:25
|- - dublinka   Cytat(trueblue @ 16.07.2019, 13:25:25...   16.07.2019, 13:46:29
- - trueblue   Cytat(dublinka @ 16.07.2019, 14:29:16...   16.07.2019, 13:47:10
- - nospor   casperi na koniec chcial poprostu miec wynik 10, ...   16.07.2019, 13:48:09
- - trueblue   Cytat(nospor @ 16.07.2019, 14:48:09 )...   16.07.2019, 13:51:06
|- - dublinka   Cytat(trueblue @ 16.07.2019, 13:51:06...   16.07.2019, 13:57:56
- - nospor   skoro wynikiem ma byc string 10,50, 60 to explode ...   16.07.2019, 13:53:14
- - trueblue   Według mnie ma być to tablica z 3-ech elementów. U...   16.07.2019, 13:54:48
- - nospor   Cytatma wartość : 10, 50, 60Dla mnie to jest text,...   16.07.2019, 13:58:15
- - trueblue   Cytat(dublinka @ 16.07.2019, 14:56:32...   16.07.2019, 13:58:29
|- - dublinka   Cytat(trueblue @ 16.07.2019, 13:58:29...   16.07.2019, 14:20:48
- - trueblue   Cytat(dublinka @ 16.07.2019, 15:20:48...   16.07.2019, 16:00:50
- - casperii   chwila mnie nie było i rozpętało się piekło na for...   16.07.2019, 22:53:33
- - dublinka   Cytat(casperii @ 16.07.2019, 22:53:33...   17.07.2019, 13:24:44


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.10.2025 - 08:24