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.
  1. $konyvtarak = array(  
  2. 'sql kérés 1' = '/1 könyvtár/',  
  3. 'sql kérés 3' = '/2 könyvtár/',  
  4. 'sql kérés 3' = '/3 könyvtár/'  
  5. )  
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?
  1.   while (list ($keresek$konyvtar) = each($konyvtarak )) {  
  2.   if ($server_request_uri==$konyvtar) {  
  3. //  $eredmeny = mysql_query("SELECT * `$table` WHERE $keresek");   
  4.   }  
  5.   }  
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.
  1.  $konyvtarak = array(    
  2.  'sql kérés 1' = '/1 könyvtár/',    
  3.  'sql kérés 3' = '/2 könyvtár/',    
  4.  'sql kérés 3' = '/3 könyvtár/'    
  5.  )  
  6.   $keresett_keres = "sql kérés 1";  
  7.   $keresett_konyvtar = array_key_exists($keresett_keres$konyvtarak);  
  8. ...  
  9. // $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
  1. $konyvtarak = array(      
  2.   'sql kérés 1' => '/1 könyvtár/',      
  3.   'sql kérés 3' => '/2 könyvtár/',      
  4.   'sql kérés 3' => '/3 könyvtár/',  
  5. );    
  6. $keresett_keres = "sql kérés 1";    
  7. $keresett_konyvtar = array_key_exists($keresett_keres$konyvtarak) ?   
  8.   $konyvtarak[$keresett_keres] :  
  9.   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
  1. reset($tarolo);  
  2.    if (is_array($tarolo[mersor_id])) {  
  3.     foreach ($tarolo as $azonosito=>$tomb) {  
  4.      foreach ($tomb as $adatsor_azon=>$ertek) {  
  5.         if ($ertek==null)  
  6.          { $tarolo[$azonosito] [$adatsor_azon]= "/";}  
  7.      } //belso foreach  
  8.     }  //kulso foreach  
  9.   } // 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?