Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Jak zrobić numerację po kolei rekordów?
woxala123
post 6.09.2017, 21:31:36
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


  1. echo "<P>Total number of combinations:" . count($solutions) . "</p>";
  2. echo "<p> solutions: </p>";
  3. foreach ($solutions as $sol) {
  4. echo "<p> {$sol[0]} {$sol[1]} {$sol[2]} {$sol[3]} {$sol[4]}</p>";

Powyżej kawałek kodu który wyświetla kombinację liczb tylko chcę jeszcze wyswietlić po kolei nr tych rekordów
Dla przykładu
id liczby
1. 1 2 3
2. 3 4 6
3. itp
4. itp
Myślałem jakąś pętlą for tylko nie potrafię tego zgrać z wynikami.
Pozdrawiam
Go to the top of the page
+Quote Post
b4rt3kk
post 6.09.2017, 22:32:32
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Przed wyświetleniem wyników użyj funkcji sort:
http://php.net/manual/en/function.sort.php

Czyli, np.:

  1. echo "<P>Total number of combinations:" . count($solutions) . "</p>";
  2. echo "<p> solutions: </p>";
  3. sort($solutions);
  4. foreach ($solutions as $sol) {
  5. echo "<p> {$sol[0]} {$sol[1]} {$sol[2]} {$sol[3]} {$sol[4]}</p>";


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
woxala123
post 6.09.2017, 22:49:10
Post #3





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


  1. sort($numbers);
  2. foreach ($numbers as $key => $val) {
  3.  
  4. foreach ($solutions as $sol) {
  5. echo "<p> {$sol[0]} {$sol[1]} {$sol[2]} {$sol[3]} {$sol[4]}</p>";
  6. echo "numbers[" . $key . "] = " . $val . "\n";
  7. }}
  8.  

Zrobiłem coś takiego ale wychodzą jeszcze głupoty przy wyświetlaniu.
Go to the top of the page
+Quote Post
b4rt3kk
post 6.09.2017, 23:22:26
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Wcześniej napisałeś, że masz jedną pętlę, teraz pokazałeś, że masz dwie. Kod jest niezrozumiały. Jak chcesz pomocy to pokaż całość.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
woxala123
post 7.09.2017, 04:47:29
Post #5





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


  1. $numbers = array(
  2. 9 ,21,44,2,32,1,39,31
  3. );
  4.  
  5. $solutions = array();
  6.  
  7. function generate($k, $solution)
  8. {
  9. global $solutions, $numbers;
  10. if (count($solution) == 5) {
  11. $solutions[] = $solution;
  12. }
  13. if (count($solution) < 5 )
  14. for ($i = $k; $i < count($numbers); $i++) {
  15. $solution[] = $numbers[$i];
  16. generate($i + 1, $solution);
  17. array_pop($solution);
  18. }
  19.  
  20. }
  21.  
  22. generate(0, array());
  23.  
  24.  
  25. echo "<P>Total number of combinations:" . count($solutions) . "</p>";
  26. echo "<p> solutions: </p>";
  27. sort($numbers);
  28. foreach ($numbers as $key => $val) {
  29.  
  30. foreach ($solutions as $sol) {
  31. echo "<p> {$sol[0]} {$sol[1]} {$sol[2]} {$sol[3]} {$sol[4]}</p>";
  32. echo "numbers[" . $key . "] = " . $val . "\n";
  33.  
  34.  
Go to the top of the page
+Quote Post
nospor
post 7.09.2017, 08:23:13
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ty zdaje sie chcesz ponumerowac wynik koncowy a nie dane poczatkowe co nie? Petla w petli ci nie potrzebna, od zwykle zwiekszanie zmiennej o 1 (podstawy matematyki) w petli, ktora wyswietla dane....

  1. $licznik = 0;
  2. foreach ($solutions as $sol) {
  3. $licznik++;
  4. echo "<p> {$licznik}. {$sol[0]} {$sol[1]} {$sol[2]} {$sol[3]} {$sol[4]}</p>";
  5. }


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kpt_lucek
post 7.09.2017, 09:19:09
Post #7





Grupa: Zarejestrowani
Postów: 428
Pomógł: 77
Dołączył: 10.07.2011
Skąd: Warszawa

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


Cytat(nospor @ 7.09.2017, 09:23:13 ) *
Ty zdaje sie chcesz ponumerowac wynik koncowy a nie dane poczatkowe co nie? Petla w petli ci nie potrzebna, od zwykle zwiekszanie zmiennej o 1 (podstawy matematyki) w petli, ktora wyswietla dane....

  1. $licznik = 0;
  2. foreach ($solutions as $sol) {
  3. $licznik++;
  4. echo "<p> {$licznik}. {$sol[0]} {$sol[1]} {$sol[2]} {$sol[3]} {$sol[4]}</p>";
  5. }


Lub, zakładając że klucze są numeryczne 0..n i chcesz wyświetlić całą zawartość $sol
  1. foreach ($solutions as $key => $sol) {
  2. echo sprintf('<p>%d, %s</p>', $key + 1, implode(' ', $sol));
  3. }


Ten post edytował kpt_lucek 7.09.2017, 09:19:23


--------------------


Cytat
There is a Bundle for that
Lukas Kahwe Smith - October 31th, 2014
Go to the top of the page
+Quote Post
nospor
post 7.09.2017, 09:25:23
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@kpt_lucek nie chcialem mu juz mieszac tak skomplikowana operacja jak indeksy tablicy. niech wpierw opanuje podstawy wink.gif

I tak, patrzac po kodzie, tam sa indexy od 0 do n


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Puszy
post 7.09.2017, 11:52:31
Post #9





Grupa: Zarejestrowani
Postów: 279
Pomógł: 42
Dołączył: 10.10.2011

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


Cytat(kpt_lucek @ 7.09.2017, 10:19:09 ) *
Lub, zakładając że klucze są numeryczne 0..n i chcesz wyświetlić całą zawartość $sol
  1. foreach ($solutions as $key => $sol) {
  2. echo sprintf('<p>%d, %s</p>', $key + 1, implode(' ', $sol));
  3. }


albo

  1. foreach (array_values($solutions) as $key => $sol) {
  2. echo sprintf('<p>%d, %s</p>', $key + 1, implode(' ', $sol));
  3. }
Go to the top of the page
+Quote Post
woxala123
post 7.09.2017, 15:40:32
Post #10





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Witam
Dzięki za tyle podpowiedzi i na razie zastosowałem rozwiązanie nospor.
Pozdrawiam
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: 4.07.2025 - 10:36