1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
archived-doc-ru/reference/array/functions/array-udiff-uassoc.xml
Mikhail Alferov 01fd1e80af Update reference/array/functions to En (#1068)
* Update book.xml to en

* Update array-combine.xml to en

* Update array-diff.xml to en

* Update array-fill.xml to en

* Update array-is-list.xml to en

* Update array-map.xml to en

* Update array-merge.xml to en

* Update array-multisort.xml to en

* Update array-pad.xml to en

* Update array-search.xml to en

* Update array-splice.xml to en

* Update array-udiff-uassoc.xml to en

* Update array.xml to en

* Update count.xml to en

* Update current.xml to en

* Update each.xml to en

* Update in-array.xml to en

* Update list.xml to en

* Update next.xml to en

* Update prev.xml to en

* Update usort.xml to en
2025-05-09 09:05:53 +03:00

195 lines
6.5 KiB
XML
Raw Permalink 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: 2e60c5134e7a847c99f81eb3f7ecee1f5efeeace Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.array-udiff-uassoc" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>array_udiff_uassoc</refname>
<refpurpose>Вычисляет расхождение в массивах с дополнительной проверкой индексов,
сравнивая значения и индексы через callback-функцию</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>array_udiff_uassoc</methodname>
<methodparam><type>array</type><parameter>array</parameter></methodparam>
<methodparam rep="repeat"><type>array</type><parameter>arrays</parameter></methodparam>
<methodparam><type>callable</type><parameter>value_compare_func</parameter></methodparam>
<methodparam><type>callable</type><parameter>key_compare_func</parameter></methodparam>
</methodsynopsis>
<para>
Функция вычисляет расхождение в массивах с дополнительной проверкой индексов,
сравнивая значения и индексы через callback-функцию.
</para>
<para>
Обратите внимание, что в отличие от функций
<function>array_diff</function> и <function>array_udiff</function>
при сравнении значений также сравниваются и ключи.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>array</parameter></term>
<listitem>
<para>
Первый массив.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>arrays</parameter></term>
<listitem>
<para>
Массивы для сравнения.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>value_compare_func</parameter></term>
<listitem>
&sort.callback.description;
&sort.callback.description.presort;
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>key_compare_func</parameter></term>
<listitem>
<para>
Сравнение ключей (индексов) выполняется также callback-функцией
<parameter>key_compare_func</parameter>. Это поведение отличается
от поведения функции <function>array_udiff_assoc</function>,
которая сравнивает индексы через внутреннюю функцию.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Функция возвращает массив (<type>array</type>)
с элементами массива <parameter>array</parameter>,
которые не содержатся ни в одном другом массиве.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример сравнения массивов функцией <function>array_udiff_uassoc</function></title>
<programlisting role="php">
<![CDATA[
<?php
class cr
{
private $priv_member;
function __construct($val)
{
$this->priv_member = $val;
}
static function comp_func_cr($a, $b)
{
if ($a->priv_member === $b->priv_member) return 0;
return ($a->priv_member > $b->priv_member) ? 1 : -1;
}
static function comp_func_key($a, $b)
{
if ($a === $b) return 0;
return ($a > $b) ? 1 : -1;
}
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1 => new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1 => new cr(4), 2 => new cr(-15),);
$result = array_udiff_uassoc($a, $b, array("cr", "comp_func_cr"), array("cr", "comp_func_key"));
print_r($result);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Array
(
[0.1] => cr Object
(
[priv_member:cr:private] => 9
)
[0.5] => cr Object
(
[priv_member:cr:private] => 12
)
[0] => cr Object
(
[priv_member:cr:private] => 23
)
)
]]>
</screen>
</example>
</para>
<simpara>
В приведённом примере видно, что пара <literal>"1" =&gt; new cr(4)</literal>
есть в обоих массивах, и поэтому её нет в выводе функции.
Функция будет работать, только если ей предоставили две функции обратного вызова.
</simpara>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<simpara>
Обратите внимание, что функция обрабатывает
только первый уровень многомерного массива.
Значения на вложенных уровнях обрабатывают, например, так:
<literal>array_udiff_uassoc($array1[0], $array2[0], "data_compare_func",
"key_compare_func");</literal>.
</simpara>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>array_diff</function></member>
<member><function>array_diff_assoc</function></member>
<member><function>array_udiff</function></member>
<member><function>array_udiff_assoc</function></member>
<member><function>array_intersect</function></member>
<member><function>array_intersect_assoc</function></member>
<member><function>array_uintersect</function></member>
<member><function>array_uintersect_assoc</function></member>
<member><function>array_uintersect_uassoc</function></member>
</simplelist>
</para>
</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
-->