Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pobieranie nazwy klucza tablicy
Forum PHP.pl > Forum > Przedszkole
SaMi
Witam,

  1. $zmienna['a'] = array ('1'=>'wartosc1');
  2. $zmienna['b'] = array ('2'=>'wartosc2');
  3. $zmienna['c'] = array ('3'=>'wartosc3');
  4.  
  5. function pobierz_klucz($val)
  6. {
  7. //pobieram nazwy kluczy zadeklarowanej zmiennej + inne operacje z uwzglednieniem pobranych kluczy
  8. }
  9. pobierz_klucz($zmienna['a']);


Czy jest możliwość pobrania już w funkcji klucza a?
Sephirus
Nie ma w taki sposób. Ogólnie jest to kwestia iteracji po tablicy, jej aktualnego wiersza (current()), z którego wówczas można pobrać klucz.

Wydaje mi się ogólnie jednak, że coś robisz źle, skoro potrzebujesz znać klucz a nie wartość wiersza...

EDIT: gdzie chcesz to zastosować? Podaj przykład kodu.
Wazniak96
array_keys smile.gif
  1. $zmienna['a'] = array ('1'=>'wartosc1');
  2. $zmienna['b'] = array ('2'=>'wartosc2');
  3. $zmienna['c'] = array ('3'=>'wartosc3');
  4.  
  5. function pobierz_klucz($val)
  6. {
  7. $keys = array_keys($val);
  8. return $keys[0];
  9. }
  10. pobierz_klucz($zmienna['a']);


@edit: oczywiście popieram przedmówcę. Nie widzę sensu użycia tego kodu ale jak kto woli...
SaMi
Tak też podejrzewałem że nie ma to większego sensu, aczkolwiek chciałem zapytać madrzejszych w tym temacie ludzi smile.gif
Konkretnego kodu i przykladu nie podam bo było to czysto teoretyczne pytanie.
Sephirus
Rozumiem.

Dodam tylko dla pełnego zrozumienia sprawy, że przekazując zmienną w PHP do jakiejś funkcji lub metody przekazujesz jej wartość a nie samą zmienną. W ciele takiej funkcji/metody nie da się zatem określić po samej wartości skąd ta wartość w ogóle pochodzi - wydaje mi się, że jest to oczywiste.

Jedynym wyjątkiem od tej reguły są obiekty - przekazywane są one do metod i funkcji nie jako same obiekty/wartości a referencje do nich.

Jeśli gdzieś potrzebujesz znać klucz dla danego elementu to i tak na ogół iterujesz po danej tablicy - wtedy zdobycie klucza jest już na samym początku jak w foreach przykładowo:

  1. foreach($tablica AS $klucz => $wartosc) { ... }


W każdym innym przypadku poza iteracją nie może wystąpić sytuacja gdy potrzebujesz znać klucz - bo w każdej innej sytuacji odwołujesz się do danej tablicy po tym kluczu - więc musisz go znać już wtedy smile.gif

W razie czego masz grupę funkcji reset, current, end i key do obsługi tablic z którymi też radzę się zapoznać bo nieraz się przydają wink.gif
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.