如何在php中搜索数组?

时间:2010-12-25 13:59:16

标签: php arrays search

假设我有一个名称数组,我想要的是我想要针对字符串或正则表达式搜索此特定数组,然后将找到的匹配项存储在另一个数组中。这可能吗 ?如果是,那么请你给我一些暗示吗?我是编程新手。

4 个答案:

答案 0 :(得分:3)

为了提供另一种解决方案,我建议使用PHP的内部array_filter来执行搜索。

function applyFilter($element){
  // test the element and see if it's a match to
  // what you're looking for
}

$matches = array_filter($myArray,'applyFilter');

从PHP 5.3起,您可以使用anonymous function(与上面相同的代码,只是声明不同):

$matches = array_filter($myArray, function($element) {
  // test the element and see if it's a match to
  // what you're looking for
});

答案 1 :(得分:2)

1)将字符串存储在array1中 2)array2对你想要匹配 3)存储匹配项的array3

$array1 = array("1","6","3");
$array2 = array("1","2","3","4","5","6","7");
foreach($array1 as $key=>$value){
  if(in_array($value,$array2))
      $array3[] = $value;
}
echo '<pre>';
print_r($array3);
echo '</pre>';

答案 2 :(得分:2)

你需要的是使用类似的回调映射数组:

array_filter($myarray,"CheckMatches");

function CheckMatches($key,$val)
{
    if(preg_match("...",$val,$match))
    {
        return $match[2];
    }
}

这将为数组中的每个元素运行回调!

已更新至array_filter

答案 3 :(得分:1)

在这种情况下,您可能会按照foreach循环的方式执行某些操作,以遍历数组来查找您要查找的内容。

foreach ($array as $value) {
  if ($searching_for === $value) {/* You've found what you were looking for, good job! */}
}

如果您希望使用PHP内置方法,可以使用in_array

$array = array("1", "2", "3");
if (in_array("2", $array)) echo 'Found ya!';