Массив сравнения PHP
Сравнение двух массивов с php5 одинаковыми значениями (дублированными swift-array или нет, с учетом манипулирования php-frameworks типами) может быть выполнено bytearray с помощью array_diff()
в обоих направлениях:
!array_diff($a, $b) && !array_diff($b, $a);
Это php-include дает TRUE
, если оба массива имеют php-include одинаковые значения (после jsonarray манипуляции типами). FALSE
в противном php.ini случае. Примеры:
function array_equal_values(array $a, array $b) {
return !array_diff($a, $b) && !array_diff($b, $a);
}
array_equal_values([1], []); # FALSE
array_equal_values([], [1]); # FALSE
array_equal_values(['1'], [1]); # TRUE
array_equal_values(['1'], [1, 1, '1']); # TRUE
Как показывает php-frameworks этот пример, array_diff
оставляет ключи php.ini массива вне уравнения и не swift-array заботится ни о порядке значений, ни php.ini о том, дублируются ли значения arrays или нет.
Если дублирование php должно иметь значение, это comparison становится более сложной array задачей. Что касается «простых» значений php-frameworks (работают только строковые php-include и целочисленные значения), в php-cli игру вступает array_count_values()
для сбора php-cli информации о том, какое значение string-array как часто встречается внутри string-array массива. Эту информацию легко swift-array сравнить с ==
:
array_count_values($a) == array_count_values($b);
Это дает TRUE
, если php-cli оба массива имеют одинаковые comparison значения (после манипуляции character-arrays типами) в течение одного arrays и того же времени. FALSE
в противном php.ini случае. Примеры:
function array_equal_values(array $a, array $b) {
return array_count_values($a) == array_count_values($b);
}
array_equal_values([2, 1], [1, 2]); # TRUE
array_equal_values([2, 1, 2], [1, 2, 2]); # TRUE
array_equal_values(['2', '2'], [2, '2.0']); # FALSE
array_equal_values(['2.0', '2'], [2, '2.0']); # TRUE
Это можно swift-array дополнительно оптимизировать, сравнив php5 вначале количество двух массивов, что php-mail относительно дешево, и быстро php проведя проверку, позволяющую character-arrays отличить большинство массивов php-cli друг от друга, когда подсчет swift-array дублирования значений имеет php значение.
Эти примеры пока php-include частично ограничены строковыми arrays и целочисленными значениями, а php-frameworks также невозможно строгое string-array сравнение с array_diff
. Для строгого php-mail сравнения более подходит arrays array_search
. Значения необходимо подсчитывать swift-array и индексировать, чтобы их php-fpm можно было сравнивать, поскольку string-array простое превращение их в bytearray ключ (как это делает array_search
) не comparison поможет.
Это немного больше jsonarray работы. Однако в итоге сравнение php5 такое же, как и раньше:
$count($a) == $count($b);
Главное jsonarray отличие $count
:
$table = [];
$count = function (array $array) use (&$table) {
$exit = (bool)$table;
$result = [];
foreach ($array as $value) {
$key = array_search($value, $table, true);
if (FALSE !== $key) {
if (!isset($result[$key])) {
$result[$key] = 1;
} else {
$result[$key]++;
}
continue;
}
if ($exit) {
break;
}
$key = count($table);
$table[$key] = $value;
$result[$key] = 1;
}
return $result;
};
При этом сохраняется php5 таблица значений, так что bytearray оба массива могут использовать swift-array один и тот же индекс. Также php можно выйти раньше первого string-array раза, когда во втором массиве php-cli обнаружено новое значение.
Эта swift-array функция также может добавлять php5 контекст strict, имея дополнительный php-include параметр. А добавление еще php-include одного дополнительного параметра array позволило бы включить поиск php.ini дубликатов или нет. Полный string-array пример:
function array_equal_values(array $a, array $b, $strict = FALSE, $allow_duplicate_values = TRUE) {
$add = (int)!$allow_duplicate_values;
if ($add and count($a) !== count($b)) {
return FALSE;
}
$table = [];
$count = function (array $array) use (&$table, $add, $strict) {
$exit = (bool)$table;
$result = [];
foreach ($array as $value) {
$key = array_search($value, $table, $strict);
if (FALSE !== $key) {
if (!isset($result[$key])) {
$result[$key] = 1;
} else {
$result[$key] += $add;
}
continue;
}
if ($exit) {
break;
}
$key = count($table);
$table[$key] = $value;
$result[$key] = 1;
}
return $result;
};
return $count($a) == $count($b);
}
Примеры использования:
array_equal_values(['2.0', '2', 2], ['2', '2.0', 2], TRUE); # TRUE
array_equal_values(['2.0', '2', 2, 2], ['2', '2.0', 2], TRUE); # TRUE
array_equal_values(['2.0', '2', 2, 2], ['2', '2.0', 2], TRUE, FALSE); # FALSE
array_equal_values(['2'], ['2'], TRUE, FALSE); # TRUE
array_equal_values([2], ['2', 2]); # TRUE
array_equal_values([2], ['2', 2], FALSE); # TRUE
array_equal_values([2], ['2', 2], FALSE, TRUE); # FALSE
php
arrays
comparison
Массив сравнения PHP
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.