Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wyświetlanie wartości tablicy w określonej kolejności
AdamT
post 25.09.2017, 13:41:01
Post #1





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 22.01.2004
Skąd: LDZ

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


Mam taki problem z poniższym kodem:
  1. <?php
  2. // To pobieramy z formularza:
  3. // $string -> {"key1":"","key2":"1","key3":"false","key4":"true"}
  4.  
  5. // Kasujemy z ciągu pierwszy i ostatni znak - czyli { i }
  6. $string = substr($string, 1, -1);
  7. // Tworzymy tablicę ze stringa gdzie po lewej stronie znaku : to klucze a po prawej to wartości
  8. $array = array_chunk(preg_split('/(\:|,)/', $string), 2);
  9. $result = array_combine(array_column($array, 0), array_column($array, 1));
  10.  
  11. // Sortuję tablicę - może nie potrzebnie
  12. asort($result);
  13.  
  14. // Wykonuję petlę, która ma za zadanie sprawdzić poniższe warunki
  15. foreach ($result as $key_name => $value) {
  16. echo "DEBUG".$key_name." ma wartość: ".$value."\n";
  17. // Dotąd działa dobrze :)
  18.  
  19. //1. Wyświetl wyniki tylko tam gdzie wartości są liczbowe
  20. if (is_numeric ($value))
  21. echo $key_name." to ma: ".$value;
  22.  
  23. //2. Wyświetl wyniki tylko tam gdzie wartość jest "true"
  24. if ($value == "true")
  25. echo $key_name." ma jest - ".$value;
  26.  
  27. //3. Na koniec wyśweitl wyniki tam gdzie warość jest "false"
  28. if ($value == "false")
  29. echo $key_name." nie nie jest ".$value;
  30.  
  31. }
  32.  
  33. // Wyniki w postaci tabeli oddzielonej 3 headerami - tabela 5 kolumn
  34. ?>
  35.  
  36. <table id="ajdi">
  37. <th> Header 1</th>
  38. <tr>
  39. <td> <?php echo $key_name." ma ".$value;?></td>
  40. <td> <?php echo $key_name." ma ".$value;?></td>
  41. <td> <?php echo $key_name." ma ".$value;?></td>
  42. <td> <?php echo $key_name." ma ".$value;?></td>
  43. <td> <?php echo $key_name." ma ".$value;?></td>
  44. </tr>
  45. <th> Header 2</th>
  46. <tr>
  47. <td> <?php echo $key_name." jest ".$value;?></td>
  48. <td> <?php echo $key_name." jest ".$value;?></td>
  49. <td> <?php echo $key_name." jest ".$value;?></td>
  50. <td> <?php echo $key_name." jest ".$value;?></td>
  51. <td> <?php echo $key_name." jest ".$value;?></td>
  52. </tr>
  53. <th> Header 3</th>
  54. <tr>
  55. <td> <?php echo $key_name." nie jest ".$value;?></td>
  56. <td> <?php echo $key_name." nie jest ".$value;?></td>
  57. <td> <?php echo $key_name." nie jest ".$value;?></td>
  58. <td> <?php echo $key_name." nie jest ".$value;?></td>
  59. <td> <?php echo $key_name." nie jest ".$value;?></td>
  60. </tr>
  61. </table>
  62.  


Etap 1 na którym poległem to sprawdzanie wartości w tablicy sad.gif

  1. //1. Wyświetl wyniki tylko tam gdzie wartości są liczbowe
  2. if (is_numeric ($value))
  3. echo $key_name." to ma: ".$value;

To mi nie zwraca nic.. a chciałbym, żeby zwróciło i wyświetliło $key1 -> '' i $key2 -> '1' bo taki jest warunek... co robię źle ?


--------------------
Hardware : <span style="font-weight: bold;">OrangePi+ 2E | 2GB RAM | HDD: 1TB </span>
Software : <span style="font-weight: bold;">Debian GNU/Linux 8 (jessie) 3.4.113-sun8i </span>
Go to the top of the page
+Quote Post
sabat24
post 25.09.2017, 14:02:15
Post #2





Grupa: Zarejestrowani
Postów: 175
Pomógł: 26
Dołączył: 13.09.2007
Skąd: Gdańsk

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


Po pierwsze string, który otrzymujesz, to jest JSON, więc zamiast

  1. // Kasujemy z ciągu pierwszy i ostatni znak - czyli { i }
  2. $string = substr($string, 1, -1);
  3. // Tworzymy tablicę ze stringa gdzie po lewej stronie znaku : to klucze a po prawej to wartości
  4. $array = array_chunk(preg_split('/(\:|,)/', $string), 2);
  5. $result = array_combine(array_column($array, 0), array_column($array, 1));


Zrób po prostu
  1. $result = json_decode($string, TRUE);


Ten post edytował sabat24 25.09.2017, 14:02:59
Go to the top of the page
+Quote Post
AdamT
post 25.09.2017, 14:20:55
Post #3





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 22.01.2004
Skąd: LDZ

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


Pięknie dziękuję za podpowiedź smile.gif Teraz tylko się pomęczyć, żeby to ładnie do tabelki wpakować biggrin.gif


--------------------
Hardware : <span style="font-weight: bold;">OrangePi+ 2E | 2GB RAM | HDD: 1TB </span>
Software : <span style="font-weight: bold;">Debian GNU/Linux 8 (jessie) 3.4.113-sun8i </span>
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: 20.04.2024 - 03:05