cvs: phpdoc-da /reference/array/functions array-merge.xml array-multisort.xml
[email protected] ("Jesper Laursen") Fri, 22 Oct 2004 21:22:41 -0000
| Newsgroups | php.doc.da |
|---|---|
| Message-ID | <cvslauer1098480161@cvsserver> |
lauer Fri Oct 22 17:22:41 2004 EDT
Added files:
/phpdoc-da/reference/array/functions array-merge.xml
array-multisort.xml
Log:
Initial translation
lauer-20041022172241.txt
(text/plain, 13.3 KB)
http://cvs.php.net/co.php/phpdoc-da/reference/array/functions/array-merge.xml?r=1.1&p=1
Index: phpdoc-da/reference/array/functions/array-merge.xml
+++ phpdoc-da/reference/array/functions/array-merge.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<!-- EN-Revision: 1.13 Maintainer: lauer Status: ready -->
<refentry id="function.array-merge">
<refnamediv>
<refname>array_merge</refname>
<refpurpose>Fletter et eller flere arrays</refpurpose>
</refnamediv>
<refsect1>
<title>Beskrivelse</title>
<methodsynopsis>
<type>array</type><methodname>array_merge</methodname>
<methodparam><type>array</type><parameter>array1</parameter></methodparam>
<methodparam choice="opt"><type>array</type><parameter>array2</parameter></methodparam>
<methodparam choice="opt"><type>array</type><parameter>...</parameter></methodparam>
</methodsynopsis>
<para>
<function>array_merge</function> fletter elementerne fra
et eller flere arrays sammen så værdierne bliver tilføjet
til sidst i den forgående array. Den returnerer det færdige
array.
</para>
<para>
Hvis de arrays som bliver givet som input har de samme nøgler, vil den
seneste værdi for den nøgle overskrive de foregående. Hvis de givende
arrays indeholder nøgler bestående af tal, vil den sidste værdi
<emphasis role="strong">ikke</emphasis> overskrive de foregående,
men blive tilføjet.
</para>
<para>
Hvis der kun er angivet at array og det array er indekseret med tal,
vil nøglerne omindekseret med tal i stigende rækkefølge.
For associative arrays vil den sidste værdi blive gemt. Se eksempel fire
for detaljer.
</para>
<para>
<example>
<title><function>array_merge</function> eksempel</title>
<programlisting role="php">
<![CDATA[
<?php
$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge($array1, $array2);
print_r($result);
?>
]]>
</programlisting>
<para>
<varname>$result</varname> bliver hermed:
</para>
<screen role="php">
<![CDATA[
Array
(
[color] => green
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4
)
]]>
</screen>
</example>
</para>
<para>
<example>
<title>Simpel <function>array_merge</function> eksempel</title>
<programlisting role="php">
<![CDATA[
<?php
$array1 = array();
$array2 = array(1 => "data");
$result = array_merge($array1, $array2);
?>
]]>
</programlisting>
<para>
Glem ikke at nøgler bestående af tal vil starte forfra!.
</para>
<screen role="php">
<![CDATA[
Array
(
[0] => data
)
]]>
</screen>
<para>
Hvis du ønsker at beholde de tilføjede arrays intakte og kun
ønsker at tilføje dem efter hinanden kan <literal>+</literal> operatoren
bruges:
</para>
<programlisting role="php">
<![CDATA[
<?php
$array1 = array();
$array2 = array(1 => "data");
$result = $array1 + $array2;
?>
]]>
</programlisting>
<para>
Nøglen med en tal værdi vil beholde sit nummer sammen med værdien..
</para>
<screen role="php">
<![CDATA[
Array
(
[1] => data
)
]]>
</screen>
</example>
<example>
<title><function>array_merge</function> eksempel</title>
<programlisting role="php">
<![CDATA[
<?php
$array_one = array(0 => "jay", 1 => "bob", 2 => "randal", 3 => "dante");
$array_two = array("jay" => "bob", "randal" => "dante", "jay" => "jason");
unset($array_one[2]);
$result_one = array_merge($array_one);
$result_two = array_merge($array_two);
print_r($result_one);
print_r($result_two);
?>
]]>
</programlisting>
<para>
Resultatet vil blive følgende:
</para>
<screen role="php">
<![CDATA[
Array
(
[0] => jay
[1] => bob
[2] => dante
)
Array
(
[jay] => jason
[randal] => dante
)
]]>
</screen>
</example>
</para>
<note>
<para>
Nøgler der er delte vil blive overskrevet så den første der kommer
bliver beholdt.
</para>
</note>
<para>
Se også <function>array_merge_recursive</function>,
<function> array_combine</function> og
<link linkend="language.operators.array">array operators</link>.
</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:"../../../../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
-->
http://cvs.php.net/co.php/phpdoc-da/reference/array/functions/array-multisort.xml?r=1.1&p=1
Index: phpdoc-da/reference/array/functions/array-multisort.xml
+++ phpdoc-da/reference/array/functions/array-multisort.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.1 $ -->
<!-- EN-Revision: 1.13 Maintainer: lauer Status: ready -->
<refentry id="function.array-multisort">
<refnamediv>
<refname>array_multisort</refname>
<refpurpose>Sorterer flere eller flere-dimensionelle arrays</refpurpose>
</refnamediv>
<refsect1>
<title>Beskrivelse</title>
<methodsynopsis>
<type>bool</type><methodname>array_multisort</methodname>
<methodparam><type>array</type><parameter>ar1</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter>arg</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter>...</parameter></methodparam>
<methodparam choice="opt"><type>array</type><parameter>...</parameter></methodparam>
<!-- Parameters don't need to be passed by reference -->
</methodsynopsis>
<para>
&return.success;
</para>
<para>
<function>array_multisort</function> kan brugs til at sorterer
flere arrays på en gang eller sorterer et flere-dimensionel array med
en eller flere dimensioner.
</para>
<para>
Associativt (<type>streng</type>) nøgler vil følge deres værdier, men
nøgler bestående af tal, vil blive nulstillet.
</para>
<para>
De arrays som bliver givet om input, bliver behandler som kolonne -
det betyder at den virker på samme måde som SQL metoden ORDER BY.
Det første array er den primære der bliver sorteret på. De rækker
(værdier) som er ens i det array, vil blive sorteret ved det næste array
osv.
</para>
<para>
Rækkefølgen af argumenterne i denne funktion kan virke lidt unormal, men
fleksibel. Det første argument skal være et array. Derefter kan hvert
argument enten være et nyt array eller en sorteringsnøgle fra denne liste.
</para>
<para>
Rækkefølge sorteringsnøgler:
<itemizedlist>
<listitem>
<simpara><constant>SORT_ASC</constant> - Sorterer i stigende rækkefølge</simpara>
</listitem>
<listitem>
<simpara><constant>SORT_DESC</constant> - Sorterer i faldende rækkefølge</simpara>
</listitem>
</itemizedlist>
</para>
<para>
Type sorteringsnøgler:
<itemizedlist>
<listitem>
<simpara><constant>SORT_REGULAR</constant> - Sammenligner elementer normalt</simpara>
</listitem>
<listitem>
<simpara><constant>SORT_NUMERIC</constant> - Sammenligner elementer som tal</simpara>
</listitem>
<listitem>
<simpara><constant>SORT_STRING</constant> - Sammenligner elementer som strenge</simpara>
</listitem>
</itemizedlist>
</para>
<para>
Der kan ikke angives to sorteringsnøgler af den samme type kan vælge
til det samme array. En sorteringsnøgle vælges efter det array argument som
den skal gælde for. Nøglerne bliver resat til standard
<constant>SORT_ASC</constant> og <constant>SORT_REGULAR</constant> før
næste nye array argument.
</para>
<para>
<example>
<title>Sortering af flere arrays</title>
<programlisting role="php">
<![CDATA[
<?php
$ar1 = array("10", 100, 100, "a");
$ar2 = array(1, 3, "2", 1);
array_multisort($ar1, $ar2);
var_dump($ar1);
var_dump($ar2);
?>
]]>
</programlisting>
<para>
I dette eksempel efter sortering, vil det første array indeholde
"10", "a", 100, 100. Det andet array vil indeholde 1, 1, "2", 3.
Elementer i det array array sammen med de identiske elementer i
første array (100 og 100) bliver også sorteret.
</para>
<screen>
<![CDATA[
array(4) {
[0]=> string(2) "10"
[1]=> string(1) "a"
[2]=> int(100)
[3]=> int(100)
}
array(4) {
[0]=> int(1)
[1]=> int(1)
[2]=> string(1) "2"
[3]=> int(3)
}
]]>
</screen>
</example>
</para>
<para>
<example>
<title>Sortering af flere-dimensionel array</title>
<programlisting role="php">
<![CDATA[
<?php
$ar = array(array("10", 100, 100, "a"), array(1, 3, "2", 1));
array_multisort($ar[0], SORT_ASC, SORT_STRING,
$ar[1], SORT_NUMERIC, SORT_DESC);
?>
]]>
</programlisting>
<para>
I dette eksempel vil, efter sortering, den første array indeholde
"10", 100, 100, "a" (det blev sorteret som strenge i stigende
rækkefølge). Det andet array vil indeholde 1, 3, "2", 1
(sorteret som numrer i faldende rækkefølge).
</para>
<screen>
<![CDATA[
array(2) {
[0]=> array(4) {
[0]=> string(2) "10"
[1]=> int(100)
[2]=> int(100)
[3]=> string(1) "a"
}
[1]=> array(4) {
[0]=> int(1)
[1]=> int(3)
[2]=> string(1) "2"
[3]=> int(1)
}
}
]]>
</screen>
</example>
</para>
<para>
<example>
<title>Sortering af resultat fra database</title>
<para>
Ved dette eksempel, hvert element i <varname>data</varname> arrayet
repensentere en række i en tabel. Denne type af data er typisk et
resultat fra indeholdet af en database.
</para>
<para>
Eksempel data:
</para>
<screen>
<![CDATA[
volume | edition
-------+--------
67 | 2
86 | 1
85 | 6
98 | 2
86 | 6
67 | 7
]]>
</screen>
<para>
<varname>data</varname> er et array som normalt blive
lavet via en løkke sammen med <function>mysql_fetch_assoc</function>.
</para>
<programlisting role="php">
<![CDATA[
<?php
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
?>
]]>
</programlisting>
<para>
I dette eksempel, vil vi sortere <varname>volume</varname> faldende og
<varname>edition</varname> stigende.
</para>
<para>
Vi har et array af rækker, men <function>array_multisort</function>
kræver et array af koloner, så vi kan bruge koden herunder til
at fange kolonerne og derefter udføre sorteringen.
</para>
<programlisting role="php">
<![CDATA[
<?php
// Fremstiller en liste af koloner
foreach ($data as $key => $row) {
$volume[$key] = $row['volume'];
$edition[$key] = $row['edition'];
}
// Sorterer 'volume' data faldende og 'edition' stigende
// Tilføjer $data som den sidste parameter så sorteringen sker direkte
// i det array.
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?>
]]>
</programlisting>
<para>
De forskellige data er nu sorteret og vil se sådan ud:
</para>
<screen>
<![CDATA[
volume | edition
-------+--------
98 | 2
86 | 1
86 | 6
85 | 6
67 | 2
67 | 7
]]>
</screen>
</example>
</para>
<para>
<example>
<title>Sortering uden hensyn til størrelsen af bogstaverne</title>
<para>
Både <constant>SORT_STRING</constant> og
<constant>SORT_REGULAR</constant> ser forskel på store og små bogstaver.
Det vil sige at strenge som starter med stort bogstav, vil komme før
strenge der starter med lille bogstav.
</para>
<para>
For at opnå en sorteting hvor der ikke blevet taget hensyn til
overstående problemstilling, fremstilles der et array, hvor data
kun består af små bogstaver.
</para>
<programlisting role="php">
<![CDATA[
$array = array('Alpha', 'atomic', 'Beta', 'bank');
$array_lowercase = array_map('strtolower', $array);
array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $array);
print_r($array);
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Array
(
[0] => Alpha
[1] => atomic
[2] => bank
[3] => Beta
)
]]>
</screen>
</example>
</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:"../../../../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
-->