Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]array_search i klucz zerowy w tablicy
lukasz_matysek
post
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 2
Dołączył: 25.03.2010

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


Męczę się z tym już od paru godzin, aż mnie głowa rozbolała.

Mam arraya:

  1. (
  2. [0] => 15
  3. [1] => 13
  4. [2] => 17
  5. [3] => 19
  6. )


Zawartość arraya chcę przeszukiwać pod kątem występowania odpowiednich wartości, a kiedy je znajdę - chcę je usuwać (unset). Wszystko jest fajnie do momentu, kiedy chcę wyszukać wartość która jest pierwsza na liście, czyli ma indeks 0 - zero. Niestety, mój problem leży w tym że już kompletnie mi się namieszało z typami i operatorami, tak iż zupełnie nie wiem jak testować wynik działania array_search. Dotąd robiłem to tak:

  1. $key = array_search($element_szukany,$tablica);
  2. if(false==$key)
  3. {
  4. ... tuutaj czynności do zrobienia w razie braku wartości w tablicy
  5. }
  6. else
  7. {
  8. ... tutaj robię pewne rzeczy jak znajdę wartość
  9. }


I niestety zachowuje się to tak, jakby pomijał pierwszą wartość. Wiem że nie pomija i że błąd jest mój.

Prawdopodobnie problem leży w mieszaniu przeze mnie znaczenia ZERO i FALSE, proszę o podpowiedź gdzie robię konkretnie błąd i dlaczego.

Ten post edytował lukasz_matysek 3.11.2011, 12:04:38
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
lukasz_matysek
post
Post #2





Grupa: Zarejestrowani
Postów: 33
Pomógł: 2
Dołączył: 25.03.2010

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


Pozostawiam rozwiązanie dla innych osób, które by go poszukiwały

Otóż w tej konkretnej sytuacji najwygodniej, moim zdaniem, najpierw sprawdzić czy wartość zwracana przez array_search w ogóle jest numeryczna - za pomocą is_numeric:

  1. $key = array_search(...)
  2. if(is_numeric($key))
  3. {
  4. //oznacza że znaleziono element w arrayu, jest on pod indeksem $key
  5. }
  6. else
  7. {
  8. //jeśli zwrócona wartość nie jest wartością numeryczną, to zwrócono FALSE, więc wykonujemy tu czynności przewidziane na wypadek nie znalezienia elementu w arrayu
  9. }


Powyższy sposób całkowicie rozwiązał przedstawiony problem. Jeżeli nie ma w nim błędów merytorycznych - proponuję zamknąć temat.
Go to the top of the page
+Quote Post

Posty w temacie


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: 6.10.2025 - 00:18