Взорвать или str_split по значениям

У меня есть несколько входов ингредиентов, изложенных так.

3x морковь
1/2 стакана молока (или может быть 1/2 стакана молока)
1 чайная ложка оливкового масла

у меня также есть список ингредиентов и единиц измерения, чтобы я мог проверить, есть ли они в строке.

Теперь я понятия не имею, как разделить строку на основе значений из моего списка ингредиентов или единиц

Все, о чем я могу думать, это начать с проверки, находится ли слово в массиве так

$listIngredients = // a massive list pulled from the database like below
$units           = ['x', 'cup', 'tsp'];
$results         = [];
foreach($result->recipe_ingredients as $ingredient)
{
$results = strtr($ingredient, 'of ', '');
$results = explode($ingredient);
// using str_plural() I want to check if ingredient or units of measurement exist. then
// split them if they do so I have an array having the number, then unit, then ingredient
// then I will save each in the database under different columns.
}

или будет ли лучший способ сделать это? может быть проверка, когда есть пробел или int останавливается, например. 3x морковь или 1/2 чашки. я так растерялся> _<

РЕДАКТИРОВАТЬ: Я думал, что id выбросить это там, я знаю, что для взрыва требуется 2 параметра. мой вопрос больше касается того, какие параметры, если мне нужно больше, чем 2, например. Я хочу проверить строку на наличие целых, единиц измерения, а также ингредиента.

1

Решение

Я не совсем уверен, что вы имеете в виду

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

Но я думаю, что вы должны проверить:
Взрывается массивом разделителей

Также вы можете использовать это, чтобы проверить, содержит ли строка часть строки с этим простым старым решением (без учета регистра с помощью strtolower ())

if (strpos(strtolower($haystack), strtolower($needle)) !== false) {
echo 'true';
}

Я бы попытался разобрать строки с вашим списком ключевых фраз, а затем снова взорвать элементы массива, пока не останется подходящих ключевых фраз. Также вы должны добавить разделитель, который использовался к элементу слева, чтобы не потерять свой ингредиент (с каким-то пустым символом, чтобы предотвратить повторное разделение).

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector