Autor Zpráva
tululum
Profil *
Dobrý den,
potřebuji pomoci s funkcí array_search()
Mám následující array:
Array ( [0] => 5-2 [1] => 4-3 [2] => 3-4 [3] => 3-1 ) 


Potřebuji vyhledat v poli pouze část řetězce a vrátit jeho key (pozici)

Například:
potřebuji vyhledat v tomto poli, na kolikáté pozici je řetězec obsahující v jednom ze svých řetězců řetězec "-3"; výsledek by měl být 1 (protože na pozici 1 je řetězec "4-3" - a ten obsahuje řetězec "-3")

Jiný příklad:
Array ( [1] => nebe [2] => dudy)

chci vyhledat, na kolikáté pozici je řetězec, který obsahuje řetězec "udy"
Ten je na pozici 2 (dudy).

Problém je v tom, že funkce array_search() vyhledává pouze celé řetězce, zatímco já potřebuji vyhledat řetězec obsahující jiný_řetězec (ovšem řetězec != jiný_řetězec)

Snad jsem to vysvětlil tak, aby to někdo pochopil a osvětlil mi, jak toho docílit.
tiso
Profil
tululum: jedine prejsť pole v cykle a zistovať pomocou funkcie strpos() či sa tam daný reťazec nachádza.
fandaa
Profil
tululum
Možná nějak takto (převzato a upraveno z komentáře v dokumentaci):
<?php
function array_find($needle, $haystack)
{
   foreach ($haystack as $key => $item)
   {
      if (strpos($item, $needle) !== FALSE)
      {
         return $key;
         break;
      }
   }
}
?>
tululum
Profil *
Super, díky! Kód od uživatele fandaa funguje suprově :-) Díky!

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0