Files
php-doc-ru/reference/array/functions/array-udiff-uassoc.xml
Shein Alexey 7d5ed6694d Updated translation.
git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@307904 c90b9560-bf6c-de11-be94-00142212c4b1
2011-02-01 10:52:23 +00:00

206 lines
7.4 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: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<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>array1</parameter></methodparam>
<methodparam><type>array</type><parameter>array2</parameter></methodparam>
<methodparam choice="opt"><type>array</type><parameter> ...</parameter></methodparam>
<methodparam><type>callback</type><parameter>data_compare_func</parameter></methodparam>
<methodparam><type>callback</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>array1</parameter></term>
<listitem>
<para>
Первый массив.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>array2</parameter></term>
<listitem>
<para>
Второй массив.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>data_compare_func</parameter></term>
<listitem>
<para>
Callback-функция, используемая для сравнения.
</para>
<para>
Callback-функция для сравнения, предоставленная пользователем.
Она должна возвращать целое число меньшее, равное или большее нуля, если
первый параметр, соответственно, должен быть меньше, равен или больше второго.
</para>
<para>
Сравнение данных массивов осуществляется с помощью callback-функции,
предоставленной пользователем: <parameter>data_compare_func</parameter>.
В этом плане данная функция отличается от <function>array_diff_assoc</function>,
которая использует для сравнения встроенную функцию.
</para>
</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>array1</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 cr($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:private] => 9
)
[0.5] => cr Object
(
[priv_member:private] => 12
)
[0] => cr Object
(
[priv_member: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
-->