2016-12-24 4 views
0

は、私は同様のプレビュー値のためのPHPに配列して検索し、何も検索配列の選択値と同様の

function search($array, $key, $value){ 
     $results = array(); 
     if (is_array($array)) { 
      if (isset($array[$key]) && $array[$key] == $value) { 
       $results[] = $array; 
      } 
      foreach ($array as $subarray) { 
      $results = array_merge($results, search($subarray, $key,$value)); 
      } 
     } 
     return $results; 
    }  
    $arr = array(0 => array('id'=>1,'title'=>"امروز یکشنبه است",), 
       1 => array('id'=>2,'title'=>"فردا یکشنبه است"), 
       2 => array('id'=>3,'title'=>"دیروز یکشنبه بود")); 
    $matches = search($arr, 'title', 'یکشنبه'); 
    foreach($matches as $key=>$_search){ 
     echo $_search['id']; 
    } 

結果=何も

答えて

-1
function search($array, $key, $value){ 
     $results = array(); 
     if (is_array($array)) { 
      if (isset($array[$key]) && $array[$key] == strpos($array[$key], $value) > -1) { 
       $results[] = $array; 
      } 
      foreach ($array as $subarray) { 
      $results = array_merge($results, search($subarray, $key,$value)); 
      } 
     } 
     return $results; 
    }  
    $arr = array(0 => array('id'=>1,'title'=>"امروز یکشنبه است",), 
       1 => array('id'=>2,'title'=>"فردا یکشنبه است"), 
       2 => array('id'=>3,'title'=>"دیروز یکشنبه بود")); 
    $matches = search($arr, 'title', 'یکشنبه'); 
    foreach($matches as $key=>$_search){ 
     echo $_search['id']; 
    } 
0

使用in_array機能は次のようになりたいです。

in_array($array, $string) 

in_arrayの出力はブール値です。

0

یکشنبهは、あなたのタイトル文字列の部分文字列ですが、等価比較を行います。代わりに文字列が他の文字列の内部に存在するかどうかを調べるためにスキャンを実行する必要があります。私。比較のためにstrposを使用してください

strpos($array[$key], $value) > -1 
関連する問題