我有两个多维数组。我想比较它们并将新项添加到新数组中。我想比较数组的每个字段(年,月,日,时间)
Current Array =
array(0) {
[0]=>
array(5) {
["year"]=>
string(4) "2015"
["month"]=>
string(1) "3"
["day"]=>
string(1) "5"
["time"]=>
string(4) "0900"
}
[1]=>
array(5) {
["year"]=>
string(4) "2015"
["month"]=>
string(1) "3"
["day"]=>
string(1) "6"
["time"]=>
string(4) "0800"
}
}
插入数组=
array(1) {
[0]=>
array(5) {
["year"]=>
string(4) "2015"
["month"]=>
string(1) "3"
["day"]=>
string(1) "6"
["time"]=>
string(4) "0800"
}
[1]=>
array(5) {
["year"]=>
string(4) "2015"
["month"]=>
string(1) "3"
["day"]=>
string(1) "7"
["time"]=>
string(4) "0800"
}
}
在这种情况下,插入数组中的第一项将保存到新数组中。我想这可能有100多个项目。最终目标是不允许在表上重复插入。感谢您的投入。
找到它: Compare two multidimensional arrays then create array of only unique
答案 0 :(得分:0)
<?php
function isMatch($input, $database){
//check if there is a match
$match = array_diff($input, $database);
/**Just incase there is a match array_diff returns an empty array
And when there is no match, it returns an array with keys and values
Where by in this case will result into false.**/
if($matches == array()):
return true;
else:
return false;
endif;
}
/***using the function
Suppose this where to cime from the form
fetch from the form fields
if(isset($_POST['send'])):
$year = $_POST['year'];
$month = $_POST['month'];
$day = $_POST['day'];
$time = $_POST['time'];
$input = array('year' => $year,
'month' => $month,
'day' => $day,
'time' => $time
);
**************************/
$input = array('year' => 2015,
'month' => 2,
'day' => 28,
'time' => 2000
);
$database = array('year' => 2015,
'month' => 2,
'day' => 28,
'time' => 2000
);
if(!isMatch($input, $database)):
echo "okay save the new data";
else:
echo "Data already in database";
endif;
?>
通过更改输入数组中的值,您可以看到此函数的工作原理