Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查找两个数组之间的添加或删除值_Php_Arrays - Fatal编程技术网

Php 查找两个数组之间的添加或删除值

Php 查找两个数组之间的添加或删除值,php,arrays,Php,Arrays,我为synctwarray编写了一个代码,知道哪些是必须删除的,哪些是添加到新数组中的 <?php $currentArray = array('ali', 'hasan', 'husein'); //base array read from database $saveArray = array('husein', 'Hasan', 'taghi'); //requested item for save/delete in database $deleteArray = array();

我为synctwarray编写了一个代码,知道哪些是必须删除的,哪些是添加到新数组中的

<?php
$currentArray = array('ali', 'hasan', 'husein'); //base array read from database
$saveArray = array('husein', 'Hasan', 'taghi'); //requested item for save/delete in database
$deleteArray = array();
$addArray = array();

$currentArray = array_map('strtolower', $currentArray);
$saveArray = array_map('strtolower', $saveArray);

foreach ($currentArray as $a) {
    if (!in_array($a, $saveArray))
        $deleteArray[] = $a;
}

foreach ($saveArray as $a) {
    if (!in_array($a, $currentArray))
        $addArray[] = $a;
}

echo 'must be deleted:';
var_dump($deleteArray);

echo 'must be added:';
var_dump($addArray);

?>
现在,您认为该操作的代码更好、更快、更简单吗?

您可以将其用作回调函数

$currentArray = array('ali', 'hasan', 'husein');
$saveArray = array('husein', 'Hasan', 'taghi');

$deleteArray = array_udiff($currentArray, $saveArray, 'strcasecmp');

$addArray = array_udiff($saveArray, $currentArray, 'strcasecmp');

您可以将其用作回调函数

$currentArray = array('ali', 'hasan', 'husein');
$saveArray = array('husein', 'Hasan', 'taghi');

$deleteArray = array_udiff($currentArray, $saveArray, 'strcasecmp');

$addArray = array_udiff($saveArray, $currentArray, 'strcasecmp');

值必须相同

$currentArray = array_map('strtolower', $currentArray);
$saveArray = array_map('strtolower', $saveArray);
并且基本上使用数组diff

$deleteArray = array_diff($currentArray, $saveArray);
$addArray = array_diff($saveArray, $currentArray);

这些值必须相同

$currentArray = array_map('strtolower', $currentArray);
$saveArray = array_map('strtolower', $saveArray);
并且基本上使用数组diff

$deleteArray = array_diff($currentArray, $saveArray);
$addArray = array_diff($saveArray, $currentArray);

你想替换阿里地区的taghi?@AvinashBabu,不,我想删除
ali
并添加
taghi
你想替换阿里地区的taghi?@AvinashBabu,不,我想删除
ali
并添加
taghi