Files
php-doc-ru/reference/array/functions/array-find-key.xml
2024-11-04 14:18:50 +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-key" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>array_find_key</refname>
<refpurpose>Возвращает ключ первого элемента, который удовлетворяет callback-функции</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>mixed</type><methodname>array_find_key</methodname>
<methodparam><type>array</type><parameter>array</parameter></methodparam>
<methodparam><type>callable</type><parameter>callback</parameter></methodparam>
</methodsynopsis>
<simpara>
Функция <function>array_find_key</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_key</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_key</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_key($array, function (string $value) {
return strlen($value) > 4;
}));
// Найдём ключ первого животного, название которого начинается с буквы f
var_dump(array_find_key($array, function (string $value) {
return str_starts_with($value, 'f');
}));
// Найдём ключ первого животного, который совпадает с первой буквой названия
var_dump(array_find_key($array, function (string $value, $key) {
return $value[0] === $key;
}));
// Найдём ключ первого животного, который соответствует регулярному выражению
var_dump(array_find_key($array, function ($value, $key) {
return preg_match('/^([a-f])$/', $key);
}));
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
string(1) "e"
NULL
string(1) "c"
string(1) "a"
]]>
</screen>
</example>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><function>array_find</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
-->