array_udiff_uassoc
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
array_udiff_uassoc
Референца за `function.array-udiff-uassoc.php` со подобрена типографија и навигација.
array_udiff_uassoc
класата mysqli_driver
array_udiff_uassoc — Ги пресметува разликите на низите со дополнителна проверка на индекс, ги споредува податоците и индексите со помош на функција за повикување
= NULL
array
$array,array
...$arrays,callable
$value_compare_func,callable
$key_compare_func): array
Ги пресметува разликите на низите со дополнителна проверка на индекс, ги споредува податоците и индексите со помош на функција за повикување.
Имајте предвид дека клучевите се користат во споредбата за разлика од array_diff() and array_udiff().
Параметри
array-
Првата низа.
arrays-
Низи за споредба.
value_compare_func-
Функцијата за споредба мора да врати цел број помал, еднаков или поголем од нула ако првиот аргумент се смета за помал, еднаков или поголем од вториот, соодветно.
Безбедност: стандардниот сет на знациВраќање non-integer вредности од функцијата за споредба, како што се floatќе резултира со внатрешно префрлање во int на вратената вредност на повиканата функција. Така вредности како
0.99and0.1ќе бидат префрлени во цел број од0, што ќе ги спореди таквите вредности како еднакви.Безбедност: стандардниот сет на знациФункцијата за повикување за сортирање мора да ракува со која било вредност од која било низа по кој било редослед, без оглед на редоследот по кој првично биле обезбедени. Ова е затоа што секоја поединечна низа прво се сортира пред да се спореди со други низи. На пример:
<?php
$arrayA = ["string", 1];
$arrayB = [["value" => 1]];
// $item1 and $item2 can be any of "string", 1 or ["value" => 1]
$compareFunc = static function ($item1, $item2) {
$value1 = is_string($item1) ? strlen($item1) : (is_array($item1) ? $item1["value"] : $item1);
$value2 = is_string($item2) ? strlen($item2) : (is_array($item2) ? $item2["value"] : $item2);
return $value1 <=> $value2;
};
?> key_compare_func-
Споредбата на клучевите (индексите) се врши исто така и со функцијата за повикување
key_compare_func. Ова однесување е различно од она што array_udiff_assoc() го прави, бидејќи вториот ги споредува индексите со користење на внатрешна функција.
Вратени вредности
Враќа array Низи за споредба
array кој користи внатрешна функција за споредба на податоците.
Примери
Пример #1 array_udiff_uassoc() example
<?php
class cr {
private $priv_member;
function __construct($val)
{
$this->priv_member = $val;
}
static function comp_func_cr($a, $b)
{
if ($a->priv_member === $b->priv_member) return 0;
return ($a->priv_member > $b->priv_member)? 1:-1;
}
static function comp_func_key($a, $b)
{
if ($a === $b) return 0;
return ($a > $b)? 1:-1;
}
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);
$result = array_udiff_uassoc($a, $b, array("cr", "comp_func_cr"), array("cr", "comp_func_key"));
print_r($result);
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
Array
(
[0.1] => cr Object
(
[priv_member:cr:private] => 9
)
[0.5] => cr Object
(
[priv_member:cr:private] => 12
)
[0] => cr Object
(
[priv_member:cr:private] => 23
)
)
Во нашиот пример погоре ја гледате "1" => new cr(4)
парот е присутен во двете низи и затоа не е во излезот од функцијата. Имајте предвид дека мора да обезбедите 2 функции за повикување.
Белешки
Забелешка: Ве молиме имајте предвид дека оваа функција проверува само една димензија на n-димензионална низа. Се разбира, можете да проверувате подлабоки димензии со користење, на пример,
array_udiff_uassoc($array1[0], $array2[0], "data_compare_func", "key_compare_func");.
Види Исто така
- array_diff() - Ги пресметува разликите на низите
- array_diff_assoc() - Ги пресметува разликите на низите со дополнителна проверка на индекс
- array_udiff() - Ги пресметува разликите на низите со користење на функција за повикување за споредба на податоци
- array_udiff_assoc() - Ги пресметува разликите на низите со дополнителна проверка на индекс, ги споредува податоците со функција за повикување
- array_intersect() - Пресметува разлика на низи користејќи callback функција на клучевите за споредба
- array_intersect_assoc() - Пресметува пресек на низи
- array_uintersect() - Ги пресметува пресеците на низите, ги споредува податоците со функција за повикување
- array_uintersect_assoc() Двете вредности од
- array_uintersect_uassoc() - Ги пресметува пресеците на низите со дополнителна проверка на индекс, ги споредува податоците со помош на функција за повикување