【问题标题】:Find with like condition in array在数组中查找类似条件
【发布时间】:2012-07-14 23:07:58
【问题描述】:

我有以下数组,我想使用搜索和排序。搜索和排序就像我们使用 MySQL "LIKE" 条件进行的排序,但在数组中而不是在数据库中。

Array
(
    [4] => Varun Kumar
    [14] => Jason Ince
)

就像用 Jason Ince 输入“jas”记录一样,必须分别用键和值以及记录的其余部分从中出来。

【问题讨论】:

  • 你可以循环遍历数组并对每个键值对进行 strpos 比较吗?

标签: php mysql arrays sorting


【解决方案1】:

你的意思是这样的:

foreach($yourArr as $key => $value) {
    if (strpos($value, $yourString) !== false) {
       //results here
    }
}

【讨论】:

  • 该死的正则表达式..他们宠坏了我!我完全忘记了strpos()
【解决方案2】:

你可以使用array_filter:

$filtered_array = array_filter($original_array, create_function($a, 'return stristr($a,"jas")!==false'));

或者,如果你使用的是 php 5.3+,语法是:

$filtered_array = array_filter($original_array, function($a){ return stristr($a,"jas")!==false });

【讨论】:

    【解决方案3】:
    function arraySearch( $array, $search ) { 
        foreach ($array as $a ) { 
            if(strstr( $a, $search)){ 
                echo $a;
            } 
        } 
    return false; 
    }
    arraySearch(array("php","mysql","search"),"my"); // will return mysql
    

    【讨论】:

      【解决方案4】:

      你也可以这样使用:

      function check($yourString)
      {
          foreach($yourArr as $key => $value) {
              if (strpos($value, $yourString) !== false)
                  return strpos($value, $yourString);
          }
      }
      

      这样你就可以检查条件如果不是假的。

      【讨论】:

        猜你喜欢
        • 2016-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-07
        • 1970-01-01
        • 2010-12-03
        • 1970-01-01
        相关资源
        最近更新 更多