1
0
mirror of https://github.com/php/doc-zh.git synced 2026-03-24 07:02:15 +01:00
Files
archived-doc-zh/reference/array/functions/array-diff-uassoc.xml
mowangjuanzi 12030db975 Update array
2023-12-10 01:38:17 +08:00

172 lines
4.8 KiB
XML
Executable File
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"?>
<!-- $Revision$ -->
<!-- EN-Revision: 6b64170daac5587bee4bb63c0020cb2fbf7f1253 Maintainer: HonestQiao Status: ready -->
<!-- CREDITS: mowangjuanzi -->
<refentry xml:id="function.array-diff-uassoc" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>array_diff_uassoc</refname>
<refpurpose>用用户提供的回调函数做索引检查来计算数组的差集</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>array_diff_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>key_compare_func</parameter></methodparam>
</methodsynopsis>
<para>
比较了 <parameter>array</parameter><parameter>arrays</parameter> 并返回不同之处。
注意和
<function>array_diff</function> 不同的是键名也用于比较。
</para>
<para>
<function>array_diff_assoc</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>key_compare_func</parameter></term>
<listitem>
&sort.callback.description;
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
返回一个 <type>array</type>,该数组包括了所有在
<parameter>array</parameter> 中但是不在任何其它参数数组中的值。
</para>
</refsect1>
<!--
<refsect1 role="errors">
&reftitle.errors;
&errors.no.unusual.errors;
</refsect1>
-->
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>array_diff_uassoc</function> 示例</title>
<para>
在此示例中,键值对 <literal>"a" =&gt; "green"</literal> 在两个数组中都有,因此不在本函数的输出中。不同的是,键值对
<literal>0 =&gt; "red"</literal> 出现在输出中,这是因为第一个数组的 <literal>"red"</literal> 的 key 自动分配为
<literal>0</literal>,而在第二个数组中,由于键名 <literal>0</literal> 已经被 <literal>yellow</literal>
占用key 分配为 <literal>1</literal>
</para>
<programlisting role="php">
<![CDATA[
<?php
function key_compare_func($a, $b)
{
return $a <=> $b;
}
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_uassoc($array1, $array2, "key_compare_func");
print_r($result);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Array
(
[b] => brown
[c] => blue
[0] => red
)
]]>
</screen>
<simpara>
通过用户提供的回调函数检查两个数组的索引是否相等。
</simpara>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
注意本函数只检查了多维数组中的一维。可以用
<literal>array_diff_uassoc($array1[0], $array2[0], "key_compare_func");</literal>
检查更深的维度。
</para>
</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_udiff_uassoc</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
-->