1
0
mirror of https://github.com/php/doc-tr.git synced 2026-03-24 07:12:18 +01:00
Files
2023-03-24 16:11:16 +03:00

315 lines
6.9 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"?>
<!-- EN-Revision: 2226ad08fd93e3979efbba47c5ae3545eec97d25 Maintainer: nilgun Status: ready -->
<refentry xml:id="function.usort" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>usort</refname>
<refpurpose>Bir diziyi kullanıcı tanımlı bir işlev kullanarak değerlerine
göre sıralar</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>true</type><methodname>usort</methodname>
<methodparam><type>array</type><parameter role="reference">array</parameter></methodparam>
<methodparam><type>callable</type><parameter>karş_işlevi</parameter></methodparam>
</methodsynopsis>
<para>
Bu işlev kullanıcı tarafından sağlanmış bir karşılaştırma işlevini
kullanarak diziyi "değerlerine" göre sıralar.
</para>
&note.sort-unstable;
&note.no-key-association;
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>dizi</parameter></term>
<listitem>
<para>
Sıralanacak dizi.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>karş_işlevi</parameter></term>
<listitem>
&sort.callback.description;
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.true.always;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
&return.type.true;
&array.changelog.by-ref;
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example xml:id="function.usort.examples.basic">
<title>- <function>usort</function> örneği</title>
<programlisting role="php">
<![CDATA[
<?php
function cmp($a, $b)
{
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
$a = array(3, 2, 5, 6, 1);
usort($a, "cmp");
foreach ($a as $anahtar => $değer) {
echo "$anahtar: $değer\n";
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
0: 1
1: 2
2: 3
3: 5
4: 6
]]>
</screen>
<para>
Dahili karşılaştırmayı daha da basitleştirmek için mekik işleci
kullanılabilir.
</para>
<programlisting role="php">
<![CDATA[
<?php
function cmp($a, $b)
{
return $a <=> $b;
}
$a = array(3, 2, 5, 6, 1);
usort($a, "cmp");
foreach ($a as $key => $value) {
echo "$key: $value\n";
}
?>
]]>
</programlisting>
</example>
</para>
<note>
<para>
ıkçası, bu örnek için <function>sort</function> işlevi daha uygun olurdu.
</para>
</note>
<para>
<example xml:id="function.usort.examples.multi">
<title>- <function>usort</function> ve çok boyutlu dizi</title>
<programlisting role="php">
<![CDATA[
<?php
function karşılaştır($a, $b)
{
return strcmp($a["meyva"], $b["meyva"]);
}
$meyvalar[0]["meyva"] = "mandalina";
$meyvalar[1]["meyva"] = "limon";
$meyvalar[2]["meyva"] = "portakal";
usort($meyvalar, "karşılaştır");
foreach ($meyvalar as $anah => $değer) {
echo "\$meyvalar[$anah]: " . $değer["meyva"] . "\n";
}
?>
]]>
</programlisting>
<para>
Bir çok boyutlu dizi sıralanırken <varname>$a</varname> ve
<varname>$b</varname> dizinin ilk indisine gönderimleri içerir.
</para>
&example.outputs;
<screen>
<![CDATA[
$meyvalar[0]: limon
$meyvalar[1]: mandalina
$meyvalar[2]: portakal
]]>
</screen>
</example>
</para>
<para>
<example xml:id="function.usort.examples.object">
<title>- Bir nesnenin üye yöntemini kullanan <function>usort</function>
örneği</title>
<programlisting role="php">
<![CDATA[
<?php
class Deneme {
private string $isim;
function __construct($isim)
{
$this->isim = $isim;
}
/* Duruk karşılaştırma işlevi: */
static function nesne_karşılaştır($a, $b)
{
return strtolower($a->name) <=> strtolower($b->name);
}
}
$a[] = new Deneme("c");
$a[] = new Deneme("b");
$a[] = new Deneme("d");
usort($a, [Deneme::class, "nesne_karşılaştır]);
foreach ($a as $öğe) {
echo $öğe->isim . "\n";
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
b
c
d
]]>
</screen>
</example>
<example xml:id="function.usort.examples.closure">
<title>- Çok boyutlu bir diziyi sıralamak için
<link linkend="functions.anonymous">anonim işlevler</link> kullanılan
<function>usort</function> örneği</title>
<programlisting role="php">
<![CDATA[
<?php
$array[0] = array('key_a' => 'z', 'key_b' => 'c');
$array[1] = array('key_a' => 'x', 'key_b' => 'b');
$array[2] = array('key_a' => 'y', 'key_b' => 'a');
function build_sorter($key) {
return function ($a, $b) use ($key) {
return strnatcmp($a[$key], $b[$key]);
};
}
usort($array, build_sorter('key_b'));
foreach ($array as $item) {
echo $item['key_a'] . ', ' . $item['key_b'] . "\n";
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
y, a
x, b
z, c
]]>
</screen>
</example>
<example xml:id="function.usort.examples.multiple-axes">
<title>-
Mekik işleci kullanılan <function>usort</function> örneği
</title>
<para>
Mekik işleci, bileşik değerlerin doğrudan çok yönlü karşılaştırılmasını
sağlar. Aşağıdaki örnekte, <literal>$people</literal> önce soyadına göre,
ardından soyadı eşleşirse ada göre sıralayacaktır.
</para>
<programlisting role="php">
<![CDATA[
<?php
$people[0] = ['first' => 'Adam', 'last' => 'West'];
$people[1] = ['first' => 'Alec', 'last' => 'Baldwin'];
$people[2] = ['first' => 'Adam', 'last' => 'Baldwin'];
function sorter(array $a, array $b) {
return [$a['last'], $a['first']] <=> [$b['last'], $b['first']];
}
usort($people, 'sorter');
foreach ($people as $person) {
print $person['last'] . ', ' . $person['first'] . PHP_EOL;
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Baldwin, Adam
Baldwin, Alec
West, Adam
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><function>uasort</function></member>
<member><function>uksort</function></member>
<member>&seealso.array.sorting;</member>
</simplelist>
</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
-->