ugrás a tartalomhoz

Tömb kulcs megkeresése, ha létezik annak az értéke.

randomly · 2009. Dec. 24. (Cs), 17.01
Sziasztok!

Szóval létezik egy tömböm.

$konyvtarak = array(
'sql kérés 1' = '/1 könyvtár/',
'sql kérés 3' = '/2 könyvtár/',
'sql kérés 3' = '/3 könyvtár/'
)
Most arra lenne szükségem, hogy keresem a 'sql kérés 1' key-t és ha meg van akkor eredménynek ezt kapjam '/1 könyvtár/' value-t.

Ugye array_key_exists megmondja hogy létezik, de hogyan tovább?

Csak ehhez hasonló megoldás létezik?

  while (list ($keresek, $konyvtar) = each($konyvtarak )) {
  if ($server_request_uri==$konyvtar) {
//  $eredmeny = mysql_query("SELECT * `$table` WHERE $keresek"); 
  }
  }
Köszönöm
 
1

Nem értem?

janoszen · 2009. Dec. 24. (Cs), 18.46
Nem egészen értem. Szerintem, Te a tömboperátorra gondolsz:

var_dump($konyvtarak[$keresek]);
2

Talán.

randomly · 2009. Dec. 24. (Cs), 21.11
A könyvtár nevét szeretném kinyerni.

 $konyvtarak = array(  
 'sql kérés 1' = '/1 könyvtár/',  
 'sql kérés 3' = '/2 könyvtár/',  
 'sql kérés 3' = '/3 könyvtár/'  
 )
  $keresett_keres = "sql kérés 1";
  $keresett_konyvtar = array_key_exists($keresett_keres, $konyvtarak);
...
// $keresett_konyvtar = "/1 könyvtár/";
3

Igen

janoszen · 2009. Dec. 24. (Cs), 21.52
Igen, Neked a tömboperátor kell. Vagy a doksi végigolvasása elindulva az elejétől, hogy ne maradjanak ki az alapok.
4

Na jó, köszönöm.

randomly · 2009. Dec. 24. (Cs), 22.05
Akkor remélem segít majd más, olvasom Én de nem értem mert angolul van.
7

Angol

Joó Ádám · 2009. Dec. 25. (P), 15.18
Vagy megtanulsz angolul, vagy semmire nem mész ebben a szakmában. Nem lehet nyelvtudás nélkül csinálni.

A jó hír viszont az, hogy bőven elég, ha olvasni tudsz, és abból is elég a szakmai szöveget. Használd a SZTAKI szótárt olvasás közben, nézz meg minden szót, amit nem értesz. Ha sokat olvasol, és sokat szótárazol, gyorsan fogsz fejlődni.
5

array_search

Poetro · 2009. Dec. 25. (P), 01.15
array_search amennyiben a kulcsra van szükséged az érték alapján, amennyiben fordítva, akkor meg egyszerűen kiveszed a megfelelő kulcsú elemet a tömbből. Azaz
$konyvtarak = array(    
  'sql kérés 1' => '/1 könyvtár/',    
  'sql kérés 3' => '/2 könyvtár/',    
  'sql kérés 3' => '/3 könyvtár/',
);  
$keresett_keres = "sql kérés 1";  
$keresett_konyvtar = array_key_exists($keresett_keres, $konyvtarak) ? 
  $konyvtarak[$keresett_keres] :
  NULL;


Amennyiben bármennyire is érdekel a téma, akkor az angolnak nem kellene problémának lennie. Azaz más szavakkal, amíg nem megy legalább a szakmai angol addig nem igazán érdemes programozással foglalkozni.
6

Köszönöm, köszönöm.

randomly · 2009. Dec. 25. (P), 13.09
Szia!

Köszönöm, szóval nincs olyan hogy key-t keresi és a value-t adja vissza?
Csak az array_search ami ugye a value-t keresi és key-t adja vissza.

Így nem tudom ez gyorsabb-e mint a while és if kombináció.

Működnek a programjaim csak kezdik nem győzni a generált forgalmat, optimalizálni kell a kódokat. Ezért kerestem a while és if helyett valami mást.

Köszönöm rand
8

Kulcs

Poetro · 2009. Dec. 26. (Szo), 20.54
Ha megvan a kulcs, akkor nem kell keresni, egyszerűen kiveszed az értéket a tömbből.
$tomb[$kulcs]
9

az én megoldásom erre + 1 kérdés

aeternum · 2009. Dec. 28. (H), 17.31

 reset($tarolo);
    if (is_array($tarolo[mersor_id])) {
     foreach ($tarolo as $azonosito=>$tomb) {
      foreach ($tomb as $adatsor_azon=>$ertek) {
         if ($ertek==null)
          { $tarolo[$azonosito] [$adatsor_azon]= "/";}
      } //belso foreach
     }  //kulso foreach
   } // if
$tarolo egy tömb, ami lehet egydimenziós vagy többdimenziós.
Ha többdimenziós, akkor lecseréli a 'NULL' értékeket a $tarolo-ban '/' karakterekre.

+1 kérdés
ezt először while-lal szerettem volna megcsinálni, de egymásba ágyazva a while-okat, akkor a $tomb tömb átalakul változóvá.
Miért?