在php中从数组中获取匹配的值和键

时间:2016-01-22 10:49:48

标签: php

如何从php中的数组中仅获取匹配的值。 例如:

<?php
$a=array("1"=>"Hello","2"=>"World","3"=>"Check","4"=>"Here");
?>

来自$ a,如果我有"He""ld""che"等文字,如何根据文字显示获取匹配值并键入数组。像sql一样查询。

3 个答案:

答案 0 :(得分:1)

您可以为此创建功能,如下所示:

function find_in_list($a, $find) {
    $result = array();
    foreach ($a as $el) {
        if (strpos($el, $find) !== false) {
            $result[] = $el;
        };
    }
    return $result;
}

以下是你如何称呼它:

print_r (find_in_list(array("Hello","World","Check","Here"), "el"));

输出:

Array ( [0] => Hello ) 

答案 1 :(得分:1)

这是简单的一个班轮。

您可能正在寻找preg_grep()。使用此功能,您可以从给定的数组中找到可能的REGEX

$a=array("1"=>"Hello","2"=>"World","3"=>"Check","4"=>"Here");    
$matches  = preg_grep ("/^(.*)He(.*)$/", $a);
print_r($matches);

答案 2 :(得分:0)

如果数组包含搜索字符串,您可以迭代数组并检查每个值:

        $searchStr = 'He';
        $a=array("1"=>"Hello","2"=>"World","3"=>"Check","4"=>"Here");

        foreach( $a as $currKey => $currValue ){
          if (strpos($currValue, $searchStr) !== false) {
             echo $currKey.' => '. $currValue.' ';
          }
        }
//prints 1 => Hello 4 => Here