[PHP]Wyciągnięcie konkretnych danych z zagnieżdzonych tablic


(matiit) #1

Struktura tablicy wygląda tak:

$a = array(

3 => array( "id" => 3, "nick" => "marek", "opis" => "jakistam tekst"),

9 => array( "id" => 9, "nick" => "karol", "opis" => "cos cos cos")

);

I mam zmienną $b która zawiera stringa o wartości jedengo z nicków z tej tabeli.

I chcę wyświetlić opis należący tylko do tego nicka..

WIem jak wyświetlić wszystko, ale dany w zmiennej (zawsze inny) nick nie wiem jak. Proszę o pomoc.


(M@ster) #2
foreach ($a as $suba)

{

  if ($suba['nick'] == $b)

  {

    echo $suba['opis'];

    break; // jeśli nick jest unikalny to przerywa dalsze działanie pętli, jeśli nick się może powtórzyć to usuń tą komendę

  }

}

(matiit) #3

@M@ster

Dzięki, działa.

Tylko takie moje przemyślenie, nie jest optymalne wydajnościowo rozwiązanie?

Bo musi po każdej tablicy przechodzić?

Ale chyba lepiej się nie da?


(M@ster) #4

Jeśli nie masz tych tablic więcej niż 200 to nie ma to dużego znaczenia. A jeśli masz więcej to bardziej bym się przejmował sposobem składowania tych danych a nie przeszukiwaniem :P. W inny sposób takiej struktury nie przeszukasz, a nawet jeśli to z pewnością w podobnym czasie.

Dlatego właśnie stosuje się bazy danych, który mają założone indeksy na kolumny i dzięki temu nie trzeba "przelatywać" przez wszystkie elementy podczas wyszukiwania. Ale tak jak mówię, jeśli nie ma dużo tego to nie ma to znaczenia większego.


(matiit) #5

Niestety nie mogę zastosować czegoś innego, ponieważ te tablice są mi jedynie dostarczane.