我有二维阵列。
包含一些可用名称的Array1:
Array1
(
[0] => Array
(
[quantity] => 13
[idname] => 3
[x_name] => Name-3
)
[1] => Array
(
[quantity] => 5
[idname] => 4
[x_name] => Name-4
)
)和包含所有可用名称的Array2:
Array2
(
[0] => Array
(
[id_x] => 3
[x_name] => Name-3
[id_l] => 4
)
[1] => Array
(
[id_x] => 4
[x_name] => Name-4
[id_l] => 8
)
[2] => Array
(
[id_x] => 5
[x_name] => Name-5
[id_l] => 7
)
[3] => Array
(
[id_x] => 6
[x_name] => Name-6
[id_l] => 5
)
)Array1 = Array2和Array1 = Array2 (ofc.)
我希望输出的是来自Array2的所有Array1不包含的元素.因此:
Arraydesire
(
[0] => Array
(
[id_x] => 5
[x_name] => Name-5
[id_l] => 7
)
[1] => Array
(
[id_x] => 6
[x_name] => Name-6
[id_l] => 5
)
)我试着使用array_intersect,但没有工作。谢谢你的帮助。
发布于 2014-11-04 12:14:16
您可以使用嵌套的foreach循环。如果array2当前元素的值在array1中找到,请删除该元素:
foreach($array2 as $key => $value){
foreach($array1 as $val){
if($value['x_name']==$val['x_name']){
unset($array2[$key]);
$break;
}
}
}
var_dump($array2);实例:http://codepad.viper-7.com/eOOUi6
发布于 2014-11-04 12:13:26
看看array_diff (http://php.net/manual/en/function.array-diff.php),
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);
print_r($result);
Array
(
[1] => blue
)否则,您可能需要编写一个遍历array2的循环,查看它是否在array1中,如果它没有将其添加到一个新数组中,则输出该数组。
发布于 2014-11-04 12:18:09
<?php
$arr1 = Array();
$arr1[] = Array('quantity' => 13, 'idname' => 3, 'x_name' => 'Name-3');
$arr1[] = Array('quantity' => 5, 'idname' => 4, 'x_name' => 'Name-4');
$arr2 = Array();
$newTemp = Array();
$arr2[] = Array('id_x' => 3, 'x_name' => 'Name-3', 'id_l' => 4);
$arr2[] = Array('id_x' => 4, 'x_name' => 'Name-4', 'id_l' => 8);
$arr2[] = Array('id_x' => 5, 'x_name' => 'Name-5', 'id_l' => 7);
$arr2[] = Array('id_x' => 6, 'x_name' => 'Name-6', 'id_l' => 5);
$newTemp = $arr2;
foreach ($arr1 as $subArray1) {
foreach ($arr2 as $key => $subArray2) {
if ($subArray1['x_name']==$subArray2['x_name']) {
unset($newTemp[$key]);
break;
}
}
}
print_r($arr1);
print_r($arr2);
print_r($newTemp);
?>https://stackoverflow.com/questions/26734678
复制相似问题