2012-03-19 10 views
0

配列($ array)に別の文字列( 'isavery')を含む文字列(thisisaverylongstring)が含まれているかどうかをチェックするループを作成する必要があります。PHP:配列に文字列を含む文字列があるかどうかを調べるにはどうすればよいですか?

これを有効なPHPで書くにはどうすればよいですか?

+0

を働くことができます 'in_array()'と 'array_search()'関数を試しましたか? – safarov

+0

正確に何か問題がありますか? [配列をループする](http://php.net/manual/en/control-structures.foreach.php)? [文字列中の部分文字列を見つける](http://php.net/manual/en/function.strpos.php)? –

+0

配列の配列か文字列の配列ですか? –

答えて

0
$stringToLookFor = 'isavery'; 
$inArray = FALSE; //does the string exist in the array? 
foreach($array as $string) 
{ 
    if(strpos($string, $strongToLookFor) !== FALSE) 
    { 
     $inArray = TRUE; 
    } 
} 

if($inArray) 
{ 
    echo 'String "' . $stringToLookFor . '" found in array'; 
} 
+0

これはうまくいくと思います。 –

1

それはあなたがそれが言うように、あなたがstripos(大文字小文字を区別しない文字列検索)を使用することができます単純な場合:

foreach ($array as $element) { 
    if (stripos($element, 'isavery') !== false) { 
     echo 'Found it!'; 
     break; 
    } 
} 
1

私はあなたの実際の要件が何であるかを知っているけど、私からのようにしていません次の関数を理解することは

function checkInArray($array, $val) 
{ 
    if(in_array($val,$array)) 
    return true;  
} 
function checkvalinarray($array2D, $val1, $val2) 
{ 
foreach($array2D as $array1D) 
{ 
    if(checkInArray($array1D,$val2)) 
    return true;  
} 
} 
1
$arrayData = array('This is a very long string', 
        'This is a short string', 
       ); 
$needle = 'very'; 

$matches = array_filter($arrayData, 
         function($data) use ($needle) { 
          return (stripos($data,$needle) !== FALSE); 
         } 
         ); 
if (count($matches) > 0) { 
    echo 'Match found'; 
} 
var_dump($matches); 
関連する問題