Autor | Zpráva | ||
---|---|---|---|
jan99 Profil * |
#1 · Zasláno: 29. 4. 2013, 00:20:03
Existuje nejake elegantni reseni jak zkontolovat array na podobnou hodnotu jako je v ukazce? :
in_array(array('kocour','pes'), array('kocour v botách','abcd kocka prede..'); Toto samozrejme vyhodi false, protoze klicove slovo "kocour" se presne neshoduje s hodnotou v array. Elegantni reseni = co nejmin foreachovani Diky za tip |
||
Tori Profil |
#2 · Zasláno: 29. 4. 2013, 00:31:14
Třeba by šlo něco provést s array_filter, způsob porovnávání řetězců (asi stripos?) bude v callbacku.
|
||
Majkl578 Profil |
#3 · Zasláno: 29. 4. 2013, 03:04:32
Asi bych zkombinoval array_filter a hledání provedl regulárem, zhruba takto:
$search = ['kocour','pes']; $data = ['kocour v botách','abcd kocka prede..']; $result = array_filter($data, function ($item) use ($search) { static $re; if ($re === NULL) { $re = '~' . implode('|', array_map(function ($s) { return preg_quote($s, '~'); }, $search)) . '~'; } return (bool) preg_match($re, $item); }); var_dump($result); |
||
jan99 Profil * |
#4 · Zasláno: 29. 4. 2013, 10:59:03
Majkl578:
Díky, funguje |
||
Časová prodleva: 11 let
|
0