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-assoc.xml
mowangjuanzi 12030db975 Update array
2023-12-10 01:38:17 +08:00

203 lines
5.2 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"?>
<!-- $Revision$ -->
<!-- EN-Revision: 6b64170daac5587bee4bb63c0020cb2fbf7f1253 Maintainer: HonestQiao Status: ready -->
<!-- CREDITS: mowangjuanzi -->
<refentry xml:id="function.array-diff-assoc" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>array_diff_assoc</refname>
<refpurpose>带索引检查计算数组的差集</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>array_diff_assoc</methodname>
<methodparam><type>array</type><parameter>array</parameter></methodparam>
<methodparam rep="repeat"><type>array</type><parameter>arrays</parameter></methodparam>
</methodsynopsis>
<para>
<function>array_diff_assoc</function> 返回一个数组,该数组包括了所有在
<parameter>array</parameter> 中但是不在任何其它参数 <parameter>arrays</parameter> 中的值。注意和
<function>array_diff</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>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
返回一个 <type>array</type>,包含所有在
<parameter>array</parameter> 中但是不在任何其它参数数组中的值。
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
&array.changelog.require-only-one;
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<!--
<refsect1 role="errors">
&reftitle.errors;
&errors.no.unusual.errors;
</refsect1>
-->
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>array_diff_assoc</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
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Array
(
[b] => brown
[c] => blue
[0] => red
)
]]>
</screen>
</example>
</para>
<para>
<example>
<title><function>array_diff_assoc</function> 示例</title>
<para>
键值对 <emphasis>key =&gt; value</emphasis>
中的两个值仅在 <literal>(string) $elem1 === (string)
$elem2 </literal> 时被认为相等。也就是说使用了严格检查,字符串的表达必须相同。
</para>
<programlisting role="php">
<![CDATA[
<?php
$array1 = array(0, 1, 2);
$array2 = array("00", "01", "2");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Array
(
[0] => 0
[1] => 1
)
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<simpara>
注意本函数只检查了多维数组中的一维。可以用
<literal>array_diff_assoc($array1[0], $array2[0]);</literal>
检查更深的维度。
</simpara>
</note>
<note>
<simpara>
使用更多的键比较相似数组时,确保参数传入的顺序是正确的。新的数组应该是在列表里的第一个。
</simpara>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>array_diff</function></member>
<member><function>array_diff_uassoc</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>
</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
-->