Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Filtrowanie tablicy
nansss93
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 1
Dołączył: 27.10.2015

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


Witam,

Chce przefiltrować tablicę pod względem wartości.
Kod:

  1. $result6 = array_filter($result5, array($this,'checkImpressions'));
  2. protected function checkImpressions($array){
  3. foreach($array as $key => $data){
  4. if($data[4]!=''){
  5. if($data[4]<=20){
  6. return false;
  7. } else {
  8. return true;
  9. }
  10. }
  11. elseif($data[5]!=''){
  12. if($data[5]<=20){
  13. return false;
  14. } else {
  15. return true;
  16. }
  17. } else {
  18. return false;
  19. }
  20. }
  21. return true;
  22. }


Jednak w wyniku tego na końcu otrzymuje wartości gdzie $data[5] jest na przykład równa 0, a nie powinienem.
Gdzie popełniłem błąd?

Ten post edytował nansss93 26.10.2016, 10:29:18
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Pokaż wejście i wyjście
Go to the top of the page
+Quote Post
nansss93
post
Post #3





Grupa: Zarejestrowani
Postów: 45
Pomógł: 1
Dołączył: 27.10.2015

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


Dane są bardzo rozbudowane, ale są w takiej postaci:

Kod
[RON8-Se-SON-1.6] => Array
        (
            [2] => Array
                (
                    [0] => 1
                    [1] => RON8-Se-SON-1.6-Lv0.8
                    [2] => RON8-Se-SON-1.6
                    [3] => LV00.8
                    [4] =>
                    [5] => 2309
                )

            [1] => Array
                (
                    [0] => 2
                    [1] => RON8-Se-SON-1.6-Lv0.8
                    [2] => RON8-Se-SON-1.6
                    [3] => LV00.8
                    [4] =>
                    [5] => 2309
                )

            [0] => Array
                (
                    [0] => 3
                    [1] => RON8-Se-SON-1.6-Lv0.9
                    [2] => RON8-Se-SON-1.6
                    [3] => LV00.9
                    [4] =>
                    [5] => 1990
                )

            [3] => Array
                (
                    [0] => 4
                    [1] => RON8-Se-SON-1.6-Lv0.9
                    [2] => RON8-Se-SON-1.6
                    [3] => LV00.9
                    [4] =>
                    [5] => 0
                )

        )


Ten post edytował nansss93 26.10.2016, 10:39:24
Go to the top of the page
+Quote Post
trzczy
post
Post #4





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

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


Prawdopodobnie ten warunek nie odpowiada temu elementowi $data[4] tablicy, gdzie wartość jest w ogóle nie przypisana
  1. $data[4]!=''

Czyli pusty string to nie to samo co brak wartości.
Go to the top of the page
+Quote Post
nansss93
post
Post #5





Grupa: Zarejestrowani
Postów: 45
Pomógł: 1
Dołączył: 27.10.2015

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


Dzięki za podpowiedź.
Udało mi się poprawić.
return true wyrzucał w złym momencie na mój skrypt.
Poprawne:
  1. protected function checkImpressions($array){
  2. foreach($array as $key => $data){
  3. if($data[4]!=''){
  4. if($data[4]<=20){
  5. return false;
  6. }
  7. }
  8. elseif($data[5]!=''){
  9. if($data[5]<=20){
  10. return false;
  11. }
  12. } else {
  13. return false;
  14. }
  15. }
  16. return true;
  17. }
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 Aktualny czas: 22.08.2025 - 06:44