Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak zrobić numerację po kolei rekordów?
Forum PHP.pl > Forum > Przedszkole
woxala123
  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
b4rt3kk
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>";
woxala123
  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.
b4rt3kk
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ść.
woxala123
  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.  
nospor
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. }
kpt_lucek
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. }
nospor
@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
Puszy
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. }
woxala123
Witam
Dzięki za tyle podpowiedzi i na razie zastosowałem rozwiązanie nospor.
Pozdrawiam
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.