-
Notifications
You must be signed in to change notification settings - Fork 76
/
Copy patharray-find.xml
145 lines (134 loc) · 5.14 KB
/
array-find.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<?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
-->