我有两个数组
$array1 = array('A','T','L','H','K','L');
$array2 = array('T','L');
我想要一个像
这样的新数组$array3 = array('A','H','K');
不使用数组函数。
function uniqueArray($array1,$array2) {
$result = array();
foreach($array1 as $val1) { //Array1 - Array2
$flag = 0;
foreach($array2 as $val2) {
if($val1 == $val2){
$flag = 1;
break;
}
}
if($flag == 0) {
$result[] = $val1;
}
}
foreach($array2 as $val1) { //Array2 - Array1
$flag = 0;
foreach($array1 as $val2) {
if($val1 == $val2){
$flag = 1;
break;
}
}
if($flag == 0) {
$result[] = $val1;
}
}
return $result;
}
首先合并两个数组以遍历所有项。
然后循环遍历合并的数组,如果两个原始数组都不包含该项,则将该项添加到results数组中。
function get_all_items_not_shared_by_both_arrays($array1, $array2) {
$merged_array = array_merge($array1,$array2);
$result_array = array();
foreach ($merged_array as $item) {
if ( !(in_array($item,$array1) && in_array($item,$array2)) ) {
$result_array[] = $item;
}
}
return $result_array;
}
不使用任何预定义的数组函数:
$array1 = array('A','T','L','H','K','L');
$array2 = array('T','L');
$array3=array();
foreach($array1 as $val1) {
$isExists=false;
foreach($array2 as $val2) {
if($val2 == $val1){
$isExists=true;
break;
}
}
if(!$isExists)
$array3[]=$val1;
}
print_r($array3);
解释:
查找数组1中的元素在数组2中不存在,然后将元素添加到数组3中,并重复此过程查找数组的最后一个元素