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
-->