Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zwracanie indeksu danego elementu tablicy
Forum PHP.pl > Forum > Przedszkole
greg87g
Jeśli mam tablicę, w której mam nie znaną mi ilość elementów to czy mogę na podstawie podania wartości elementu odczytać jego indeks?

Szukalem i szukalem ale znalazlem tylko array_search a mi chodzi o cos dokładnie odwrotnego (zeby zwracało indeks np 5)
wookieb
No i własnie do tego sluzy ta funkcja. Raczej zle jej w takim razie uzywasz.
phpion
Cytat(greg87g @ 26.02.2009, 13:10:34 ) *
Jeśli mam tablicę, w której mam nie znaną mi ilość elementów to czy mogę na podstawie podania wartości elementu odczytać jego indeks?

Szukalem i szukalem ale znalazlem tylko array_search a mi chodzi o cos dokładnie odwrotnego (zeby zwracało indeks np 5)

Hmmm, przecież array_search" title="Zobacz w manualu PHP" target="_manual robi dokładnie to co chcesz.
Cytat
array_search — Przeszukuje tablicę pod kątem podanej wartości i w przypadku sukcesu zwraca odpowiedni klucz
greg87g
ale nie zwraca indeksu (moze ja myle pojecia, chodzi mi o liczbę porządkową elementu w tablicy gdzi jest jeden klucz)

zalozmy ze talica wyglada tak:

$tablica[0]=cos1
$tablica[1]=cos3
$tablica[2]=cos6
$tablica[3]=cos2
...
$tablica[50]=cosilestam

chodzi mi o to zeby znając wartość "cos20" dostac numerek który zajmuje ta pozycja w tablicy
wookieb
No a powiedz mi co robi array_search...
Jak w twojej przykladowej tablicy wyszukamy cos3 to zwroci ci 1. Dodasz do tego kolejne 1 i masz wynik.
Cos2 jest na drugim miejscu w tablicy.

EDIT// Jeżeli źle cię rozumiem to podaj bardzo jasny przykład.
greg87g
no skoro tak mowicie to, sproboje. narazie nie mam jak ale faktycznie moze byc tak ze podalem zly argument, bo komunikat wlasnie brzmial cos w tym stylu ze "if not a vaild in array_search" czy jakos tak, no ja zrozumialem to w ten sposob ze ta funkcja szuka tylko jesli sie jej poda jakis inny rodzaj argumentu niz tekstowy - jak ja podawalem.

to temat powiedzmy ze zamkniety.
wookieb
Pewnie zamiast tablicy podałes inny argument innego typu (np w wyniku jakies bledu wystepujacego w skrypcie)
piotrooo89
zwróć uwagę co pisze w manualu:

Cytat
array array_keys ( array $wejście [, mixed $szukana_wartość [, bool $ścisłe_porównanie ]] )


czyli w twoim wypadku cos20

czyli mega łopatologicznie:

funkcja array_keys zwraca tablice jako argument podajesz tablice, jako argumenty opcjonalne podajesz wartość jaka ma być szukana (to Cię interesuje) i możesz porównać typ przez ===

wsio. i wszystko pisze po polsku...
greg87g
no wlasnie ... i pisze ze zwraca tablice powstałą z innej tablicy... a mi chodzilo nie o tablice z tablicy tylko o pozycje elementu (i tez to po polsku napisalem)

wiem ze pewno zaraz sie posypie lawina odpowiedzi typu "przeciez uzywajac te funkcje mozna dosc do tego co chcesz" to odrazu odsylam do zapoznania sie z nazwą tego działu.

btw mogli w manualu napisac ze funkcja moze zwrocic indeks... chocby po angielsku
piotrooo89
jeśli masz już tablice z indeksami to możesz iterować po niej foreach'em i wyciągać interesujące Cię wartości.
wookieb
Cytat(greg87g @ 26.02.2009, 12:27:28 ) *
btw mogli w manualu napisac ze funkcja moze zwrocic indeks... chocby po angielsku

Cytat
Przeszukuje tablicę pod kątem podanej wartości i w przypadku sukcesu zwraca odpowiedni klucz


Klucz to inaczej indeks smile.gif. No ale mogłeś tego nie do końca wiedzieć smile.gif

A ty piotroo po cholere sypiesz niepotrzebnymi funkcjami skoro kolega już dostał wyczerpująca odpowiedź.
greg87g
no ja myslalem ze klucz to jest nazwa pola, a indeks to jego nr. ale thx
piotrooo89
Cytat(wookieb @ 26.02.2009, 12:37:15 ) *
A ty piotroo po cholere sypiesz niepotrzebnymi funkcjami skoro kolega już dostał wyczerpująca odpowiedź.


sory wprowadziłem lekkie zamieszanie tym array_keys. moja wina... :/ (za szybko przeczytałem) to co podał wookieb w 100% Ci wystarczy.
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.