Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Pobieranie nazwy klucza tablicy
SaMi
post 22.05.2014, 11:30:50
Post #1





Grupa: Zarejestrowani
Postów: 173
Pomógł: 14
Dołączył: 27.03.2004
Skąd: Białystok

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


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?

Ten post edytował SaMi 22.05.2014, 11:31:26


--------------------
Zapraszam na spływy kajakowe rzekami podlasia www.splywy-kajakiem.pl
Go to the top of the page
+Quote Post
Sephirus
post 22.05.2014, 11:34:51
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


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.

Ten post edytował Sephirus 22.05.2014, 11:36:04


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
Wazniak96
post 22.05.2014, 11:36:55
Post #3





Grupa: Zarejestrowani
Postów: 550
Pomógł: 75
Dołączył: 5.06.2012
Skąd: Lębork

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


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...

Ten post edytował Wazniak96 22.05.2014, 11:38:07
Go to the top of the page
+Quote Post
SaMi
post 22.05.2014, 11:44:37
Post #4





Grupa: Zarejestrowani
Postów: 173
Pomógł: 14
Dołączył: 27.03.2004
Skąd: Białystok

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


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.


--------------------
Zapraszam na spływy kajakowe rzekami podlasia www.splywy-kajakiem.pl
Go to the top of the page
+Quote Post
Sephirus
post 22.05.2014, 11:50:06
Post #5





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


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


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
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: 6.05.2025 - 08:17