PHP.mk документација

array_uintersect

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.array-uintersect.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.array-uintersect.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
array_uintersect

Референца за `function.array-uintersect.php` со подобрена типографија и навигација.

function.array-uintersect.php

array_uintersect

класата mysqli_driver

array_uintersectГи пресметува пресеците на низите, ги споредува податоците со помош на функција за повикување

= NULL

array_uintersect(array $array, array ...$arrays, callable $value_compare_func): array

Ги пресметува пресеците на низите, ги споредува податоците со помош на функција за повикување.

Параметри

array

Првата низа.

arrays

Низи за споредба.

value_compare_func

Функцијата за споредба мора да врати цел број помал, еднаков или поголем од нула ако првиот аргумент се смета за помал, еднаков или поголем од вториот, соодветно.

callback(mixed $a, mixed $b): int
Безбедност: стандардниот сет на знаци

Враќање non-integer вредности од функцијата за споредба, како што се floatќе резултира со внатрешно префрлање во int на вратената вредност на повиканата функција. Така вредности како 0.99 and 0.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;
};
?>

Вратени вредности

Враќа низа што ги содржи сите вредности од array кои се присутни во сите аргументи.

Примери

Пример #1 array_uintersect() example

<?php
$array1
= array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

print_r(array_uintersect($array1, $array2, "strcasecmp"));
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

Array
(
    [a] => green
    [b] => brown
    [0] => red
)

Види Исто така

  • array_intersect() - Пресметува разлика на низи користејќи callback функција на клучевите за споредба
  • array_intersect_assoc() - Пресметува пресек на низи
  • array_uintersect_assoc() Двете вредности од
  • array_uintersect_uassoc() - Ги пресметува пресеците на низите со дополнителна проверка на индекс, ги споредува податоците со помош на функција за повикување

Белешки од корисници 4 белешки

Nate at RuggFamily dot com
19 години пред
I want to stress that in the user function, you do need to return either a 1 or a -1 properly; you cannot simply return 0 if the results are equal and 1 if they are not.  

The following code is incorrect:

<?php
function myfunction($v1,$v2) 
{
if ($v1===$v2)
    {
    return 0;
    }
return 1;
}

$a1=array(1, 2, 4);
$a2=array(1, 3, 4);
print_r(array_uintersect($a1,$a2,"myfunction"));
?>

This code is correct:

<?php
function myfunction($v1,$v2) 
{
if ($v1===$v2)
    {
    return 0;
    }
if ($v1 > $v2) return 1;
return -1;
}
$a1=array(1, 2, 4);
$a2=array(1, 3, 4);
print_r(array_uintersect($a1,$a2,"myfunction"));
?>
Рајан C
3 години пред
If you're rolling your own comparison function, keep in mind that the spaceship operator (i.e. <=>) can be your best friend. It's been around since PHP7. https://www.php.net/manual/en/language.operators.comparison.php

So, for instance, instead of a clunky function like:

<?php
function myFunction($v1, $v2) {
   if ($v1 === $v2) {
      return 0;
   }
   if ($v1 > $v2) return 1;
   return -1;
}
?>

You can simplify it to:

<?php
function myFunction($v1, $v2) {
   return $v1 <=> $v2;
}
?>
rob dot c dot ruiz at gmail dot com
пред 7 години
When trying to do a case insensitive comparison between arrays of words, the strcasecmp function works very nicely with this one like so: 

$arr1 = array('blue', 'green', 'red');

$arr2 = array('BLUE', 'Purple', 'Red');

$loose_matches = array_uintersect($arr1, $arr2, 'strcasecmp');

print_r($loose_matches) // array('blue', 'red');
Хејли Вотсон
пред 8 години
As for the other "compare function" callbacks, the return value from the callback function doesn't need to be -1, 0, or 1.

cmp($a,$b) just needs to be <0, =0, or >0 depending on whether $a<$b, $a=$b, or $a>$b.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.