stripos () не распознает первый символ

Я задаю вопрос, который, по моему мнению, не имеет ответа, и мне любопытно, почему.

У меня есть массив тестовых продуктов, в котором перечислены все мои люди get_products_all ().

function get_products_all() {
$products = array();
$products[101] = array(
"name" => "Jared",
"age" => 23,
"sex" => "Male");
$products[102] = array(
"name" => "Gen",
"age" => 21,
"sex" => "Female");
$products[103] = array(
"name" => "Noah",
"age" => 24,
"sex" => "Male");
return $products;
}

Затем у меня есть функция поиска, которая вытягивает все продукты из get_products_all () и просматривает продукты, чтобы найти строку в поле «имя», которая соответствует поиску

   function get_products_search($s) {
$results = array();
$all = get_products_all();

foreach($all as $product) {
if (stripos($product["name"], $s)) {
$results[] = $product;
}
}
return $results;
}

Как вы видете, $ s это параметр, по которому я хочу искать. В этом случае, скажем, я ищу «Джаред». Всякий раз, когда я запускаю этот код, он говорит мне, что в моем массиве нет никого по имени «Джаред»! тем не мение когда я просто вставляю «ared» … он находит «Jared» просто отлично … Если я поставлю пробел перед «Jared» в поле имени в массиве, то он также будет работать нормально.

У меня такой вопрос: почему стрипы не распознают первый символ в поле имени? Даже когда я использую смещение 0 это, кажется, не включает первый символ. Есть ли способ обойти это?

Я просто хочу иметь возможность искать имена без необходимости ставить пробел перед значением имени.

-1

Решение

Согласно Руководство по PHP:

Эта функция может возвращать логическое значение FALSE, но также может возвращать и не булево значение, которое оценивается как FALSE. Пожалуйста, прочитайте раздел о логических значениях для получения дополнительной информации. Используйте оператор === для проверки возвращаемого значения этой функции.

Пытаться

if (stripos($product["name"], $s) !== false) {

вместо

1

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

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

По вопросам рекламы [email protected]