как искать массив в php? - PullRequest
       19

как искать массив в php?

0 голосов
/ 25 декабря 2010

предположим, у меня есть массив имен, и я хочу, чтобы я искал этот конкретный массив по строке или регулярному выражению, а затем сохранял найденные совпадения в другом массиве.Это возможно ?если да, то, пожалуйста, вы можете дать мне подсказку?Я новичок в программировании.

Ответы [ 4 ]

3 голосов
/ 25 декабря 2010

Чтобы предложить еще одно решение, я бы порекомендовал использовать внутренний array_filter PHP для выполнения поиска.

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, вы можете использовать анонимную функцию (тот же код, что и выше, только что объявлен по-другому):

$matches = array_filter($myArray, function($element) {
  // test the element and see if it's a match to
  // what you're looking for
});
2 голосов
/ 25 декабря 2010

, что вам нужно сделать, это сопоставить массив с обратным вызовом следующим образом:

array_filter($myarray,"CheckMatches");

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

Это запустит обратный вызов для каждого элемента в массиве!

Обновление до array_filter

2 голосов
/ 25 декабря 2010

1) Сохраните строки в массиве 1 2) в массиве 2 вы хотите сопоставить 3) в массиве 3 вы найдете совпадения

<code>$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 '
';
1 голос
/ 25 декабря 2010

хорошо, в этом случае вы, вероятно, сделали бы что-то вроде цикла 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!';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...