сопоставить строку / строку массива, используя цикл и если условие - php

0

Это обычный простой вопрос, который меня беспокоит. У меня есть массив, хранящийся в переменной, и я хочу искать и сопоставлять значение массива строк ($ myarray) из строки, которая хранится в переменной ($ match). Как я могу сопоставить значения с помощью цикла и подсчитать его, сколько совпадений? Должен ли я использовать цикл loop или while или для каждого? Это мои выборочные данные.

$myArray = array('one', 'two', 'three', 'four', 'five');
$count = count($myArray);
$match = 'six';
$match2 = array('car', 'dog');

for ($myArray=0; $myArray < $count; $myArray++) { 
    if($myArray == $match){
        echo 'do something';
    }else{
        echo 'do something';
    }
}

Также возможно совместить значение одного массива с другим массивом? Например, я хочу искать все значения $ myArray и сопоставлять их со значениями $ match2 и возвращать все совпадения (например: 2 совпадения из 10 элементов)

У меня недостаточно знаний в циклах или обработке массивов. Спасибо за помощь.

  • 0
    Я предпочитаю использовать foreach потому что то, что вы делаете, проще и понятнее. Но каждому свое, вы можете использовать все что угодно.
  • 0
    Спасибо, что дали мне дополнительную идею. Теперь у меня есть кое-что для подражания. Можете ли вы дать мне пример кода для каждого цикла?
Теги:
string
arrays

2 ответа

4
Лучший ответ

Я думаю, что функция, которую вы ищете, - array_intersect(). Вы даете эти 2 массива, и он возвращает массив, содержащий элементы, которые они имеют вместе. Затем вы можете использовать count() для получения номера.

$matches = count(array_intersect($myArray, $match2));
  • 0
    PHP имеет несколько удобных встроенных функций массива: php.net/manual/en/ref.array.php
  • 0
    Вау! хорошо, что он считает все совпадения. как насчет того, если я хочу повторить все совпадающие значения?
Показать ещё 9 комментариев
0

Вам нужна переменная, а не ваша переменная массива, чтобы увидеть текущий индекс в вашем цикле, мы назовем этот один index, затем вы сравните строку в этой позиции со строкой, которую хотите совместить.

$myArray = array('one', 'two', 'three', 'four', 'five');
$count = count($myArray);
$match = 'six';
$match2 = array('car', 'dog');
$numberMatches = 0;

for ($index=0; $index < $count; $index++) { 
    if($myArray[index] == $match){
        echo "It matches" ;
        $numberMatches++;
    }else{
        echo "It doesn' t match";
    }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню