1
0
mirror of https://github.com/php/doc-tr.git synced 2026-03-24 07:12:18 +01:00
Files
archived-doc-tr/reference/array/functions/array-udiff.xml
2022-11-17 16:39:56 +03:00

262 lines
7.3 KiB
XML
Raw 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: 9e0f03ac354d797d1d16c0fcc1663e5e170f2727 Maintainer: nilgun Status: ready -->
<refentry xml:id="function.array-udiff" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>array_udiff</refname>
<refpurpose>Veri karşılaştırması için bir geriçağırım işlevi kullanarak
diziler arasındaki farkı bulur</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>array_udiff</methodname>
<methodparam><type>array</type><parameter>dizi</parameter></methodparam>
<methodparam rep="repeat"><type>array</type><parameter>diziler</parameter></methodparam>
<methodparam><type>callable</type><parameter>değer_karş_işlevi</parameter></methodparam>
</methodsynopsis>
<para>
Veri karşılaştırması için dahili bir işlev kullanan
<function>array_diff</function> işlevinden farklı olarak, veri
karşılaştırması için bir geriçağırım işlevi kullanarak diziler arasındaki
farkı bulur.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>dizi</parameter></term>
<listitem>
<para>
İlk dizi.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>diziler</parameter></term>
<listitem>
<para>
Karşılaştırılacak diziler.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>değer_karş_işlevi</parameter></term>
<listitem>
<para>
&return.callbacksort;
</para>
&callback.cmp;
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Diğer bağımsız değişkenlerin hiçbirinde mevcut olmayan tüm
<parameter>dizi</parameter> değerlerini içeren bir dizi ile döner.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>- stdClass nesneleri kullanılan <function>array_udiff</function> örneği</title>
<programlisting role="php">
<![CDATA[
<?php
// Karşılaştırılacak diziler
$array1 = array(new stdclass, new stdclass,
new stdclass, new stdclass,
);
$array2 = array(
new stdclass, new stdclass,
);
// Her nesneye özellik ata
$array1[0]->width = 11; $array1[0]->height = 3;
$array1[1]->width = 7; $array1[1]->height = 1;
$array1[2]->width = 2; $array1[2]->height = 9;
$array1[3]->width = 5; $array1[3]->height = 7;
$array2[0]->width = 7; $array2[0]->height = 5;
$array2[1]->width = 9; $array2[1]->height = 2;
function compare_by_area($a, $b) {
$areaA = $a->width * $a->height;
$areaB = $b->width * $b->height;
if ($areaA < $areaB) {
return -1;
} elseif ($areaA > $areaB) {
return 1;
} else {
return 0;
}
}
print_r(array_udiff($array1, $array2, 'compare_by_area'));
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Array
(
[0] => stdClass Object
(
[width] => 11
[height] => 3
)
[1] => stdClass Object
(
[width] => 7
[height] => 1
)
)
]]>
</screen>
</example>
</para>
<para>
<example>
<title>- DateTime nesneleri kullanılan <function>array_udiff</function> örneği</title>
<programlisting role="php">
<![CDATA[
<?php
class MyCalendar {
public $free = array();
public $booked = array();
public function __construct($week = 'now') {
$start = new DateTime($week);
$start->modify('Monday this week midnight');
$end = clone $start;
$end->modify('Friday this week midnight');
$interval = new DateInterval('P1D');
foreach (new DatePeriod($start, $interval, $end) as $freeTime) {
$this->free[] = $freeTime;
}
}
public function bookAppointment(DateTime $date, $note) {
$this->booked[] = array('date' => $date->modify('midnight'), 'note' => $note);
}
public function checkAvailability() {
return array_udiff($this->free, $this->booked, array($this, 'customCompare'));
}
public function customCompare($free, $booked) {
if (is_array($free)) $a = $free['date'];
else $a = $free;
if (is_array($booked)) $b = $booked['date'];
else $b = $booked;
if ($a == $b) {
return 0;
} elseif ($a > $b) {
return 1;
} else {
return -1;
}
}
}
// Haftalık randevular için bir takvim oluştur
$myCalendar = new MyCalendar;
// Bu hafta için bazı randevular al
$myCalendar->bookAppointment(new DateTime('Monday this week'), "Cleaning GoogleGuy's apartment.");
$myCalendar->bookAppointment(new DateTime('Wednesday this week'), "Going on a snowboarding trip.");
$myCalendar->bookAppointment(new DateTime('Friday this week'), "Fixing buggy code.");
// $booked tarihleri $free tarihlerle karşılaştırarak günlerin uygunluğuna bak
echo "I'm available on the following days this week...\n\n";
foreach ($myCalendar->checkAvailability() as $free) {
echo $free->format('l'), "\n";
}
echo "\n\n";
echo "I'm busy on the following days this week...\n\n";
foreach ($myCalendar->booked as $booked) {
echo $booked['date']->format('l'), ": ", $booked['note'], "\n";
}
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
I'm available on the following days this week...
Tuesday
Thursday
I'm busy on the following days this week...
Monday: Cleaning GoogleGuy's apartment.
Wednesday: Going on a snowboarding trip.
Friday: Fixing buggy code.
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<simpara>
Bu işlevin bir n boyutlu dizinin tek bir boyutunu ele alacağına dikkat
ediniz. Şüphesiz daha fazla sayıda boyutun hesaba katılmasını, örneğin
<literal>array_udiff($dizi1[0], $dizi2[0],
"veri_karş_işlevi");</literal> gibi bir kullanımla sağlayabilirsiniz.
</simpara>
</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_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>
<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
-->