Files
php-doc-ru/reference/array/functions/array-find.xml
2024-11-04 14:17:03 +03:00

146 lines
5.1 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 596c11440dc232b8ed1836d7e3afe2ed5b225a7b Maintainer: malferov Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.array-find" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>array_find</refname>
<refpurpose>Возвращает первый элемент, который удовлетворяет callback-функции</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>mixed</type><methodname>array_find</methodname>
<methodparam><type>array</type><parameter>array</parameter></methodparam>
<methodparam><type>callable</type><parameter>callback</parameter></methodparam>
</methodsynopsis>
<simpara>
Функция <function>array_find</function> возвращает значение первого элемента
массива (&array;), для которого <parameter>callback</parameter>-функция вернула &true;.
Функция вернёт &null;, если не найдёт ни одного элемента, который удовлетворяет условиям поиска.
</simpara>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
<varlistentry>
<term><parameter>array</parameter></term>
<listitem>
<simpara>
Массив (&array;), в котором требуется найти элемент.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>callback</parameter></term>
<listitem>
<para>
Callback-функция, которую функция вызовет для проверки элементов входного массива, со следующей сигнатурой:
<methodsynopsis>
<type>bool</type><methodname><replaceable>callback</replaceable></methodname>
<methodparam><type>mixed</type><parameter>value</parameter></methodparam>
<methodparam><type>mixed</type><parameter>key</parameter></methodparam>
</methodsynopsis>
Функция <function>array_find</function> вернёт значение и не станет вызывать
callback-функцию для других элементов,
если функция обратного вызова вернёт &true;.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<simpara>
Функция возвращает значение первого элемента, для которого
<parameter>callback</parameter>-функция вернула &true;. Функция вернёт &null;,
если не найдёт элемент, который удовлетворяет условиям поиска.
</simpara>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<example>
<title>Пример поиска функцией <function>array_find</function> первого значения, которое удовлетворяет callback-функции</title>
<programlisting role="php">
<![CDATA[
<?php
$array = [
'a' => 'dog',
'b' => 'cat',
'c' => 'cow',
'd' => 'duck',
'e' => 'goose',
'f' => 'elephant'
];
// Найдём название первого животного, которое длиннее 4 символов
var_dump(array_find($array, function (string $value) {
return strlen($value) > 4;
}));
// Найдём название первого животного, которое начинается с буквы f
var_dump(array_find($array, function (string $value) {
return str_starts_with($value, 'f');
}));
// Найдём название первого животного, первая буква которого совпадает с ключом
var_dump(array_find($array, function (string $value, $key) {
return $value[0] === $key;
}));
// Найдём название первого животного, ключ которого соответствует регулярному выражению
var_dump(array_find($array, function ($value, $key) {
return preg_match('/^([a-f])$/', $key);
}));
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
string(5) "goose"
NULL
string(3) "cow"
string(3) "dog"
]]>
</screen>
</example>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><function>array_find_key</function></member>
<member><function>array_all</function></member>
<member><function>array_any</function></member>
<member><function>array_filter</function></member>
<member><function>array_reduce</function></member>
</simplelist>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->