Поиск иглы in_array с использованием пользовательской функции сравненияPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Поиск иглы in_array с использованием пользовательской функции сравнения

Сообщение Anonymous »

После поиска некоторого вопроса по этому вопросу о этой проблеме я мог бы найти только это и это, но оба не разрешают отправлять аргумент (игла) в функцию поиска, но используя предварительно определенную функцию и используя array_filter .
Я ищу in_array , но не нашел.

Код: Выделить всё

function uin_array($haystack, $needle, $compareFunc)
Мне удается реализовать его с помощью Simple Foreach loop:

Код: Выделить всё

function uin_array($haystack, $needle, $compareFunc) {
foreach($haystack as $e) {
if ($compareFunc($needle, $e) == 0)
return true;
}
return false;
}
< /code>
Пример: < /p>
$found = uin_array(["AA", "BB", "CC", "DD"], "cc", "strcasecmp");
Это также можно использовать при поиске в многомерном массиве. /> edit :
Я знаю, что я могу использовать array_filter as: current (array_filter ($ haystack, function ($ element) Использование ($ guet) {...}) , но это (n) в каком -то (strong>. O (n) только в худшем случае, но не все)
edit 2
от php 8 мы имеем функцию array_any

Подробнее здесь: https://stackoverflow.com/questions/557 ... n-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»