У меня есть массив значений, содержащих одно слово, и я хотел бы найти, какое из этих значений найдено первым в строке.Найти первое появление значения массива в строке
$materials = array("cotton","silk","polyester","denim","wool");
$string1 = "The fabric composition of this jacket is 100% cotton (body) and 65% polyester/35% cotton (lining)";
$string2 = "The jeans are made from denim with cotton pockets";
Так за $ string1, я хотел бы сказать, что он нашел «хлопок» первым в качестве материала и за $ строка2 Я хотел бы сказать, что он нашел «деним» в первую очередь.
Знаете ли вы способ сделать это? Первоначально я смотрел на петлю Еогеасп, но она будет идти по порядку массива означает, что она также принесла бы «хлопок» назад для обеих строк, как это первый один в массиве:
foreach ($materials as $material) {
if (stripos($string1, $material) !== FALSE) {
$product_material1 = $material;
break;
}
}
* Вы знаете способ сделать это? * Вы что-то пробовали? Если да, покажите нам свои попытки, чтобы мы могли показать вам, что вы сделали неправильно, и где вы можете улучшить свой код. – Rizier123
разбивает строки на массивы, используя пробел в качестве разделителя. Перекрестите свои новые значения массива с помощью $ materials. Если они что-то подходят. – floor
Что мешает вам собирать начальные индексы элементов из $ materials в $ string1 и $ string2, а затем просто выбрать самый маленький? – kooker