我有一个二维数组
$list['1'][] ='23';
$list['1'][] ='24';
$list['1'][] ='25';
$list['1'][] ='26';
和一个数组
$items={"23","24","36"};
following is right syntax for 1d array.
$items=array("23","24","36");
我想检查$ List ['1']值是否在$ items内部,如果这些项不存在则将它们存储到新数组中
我试过
$different['1'][] = array_diff($items,$list['1']);
但是如果没有区别,它会创建一个带键但值为空的数组
$不同['1]
['1'] => Array
(
[0] =>
)
答案 0 :(得分:2)
if($diff = array_diff($items,$list['1])){
$different['1'][] = $diff;
}
这应该可以解决问题
答案 1 :(得分:0)
我无法重现此行为。
<?php
echo 'php: ', PHP_VERSION, "\n";
$list = array(1=>array());
$list[1][]=23;
$list[1][]=24;
$list[1][]=25;
$list[1][]=26;
$items = array(23,24);
var_dump(array_diff($items,$list[1]));
在我的机器上打印
php: 5.4.1
array(0) {
}
答案 2 :(得分:0)
试试这个:
$item = array('23','24');
foreach($list['1'] as $listItem) {
if(!in_array($listItem, $item)) {
$different['1'][] = $listItem;
}
}
答案 3 :(得分:0)
$list['1'][] ='23';
$list['1'][] ='24';
$items=array("23","24");
$different['1'][] = array_diff($items,$list['1']);
var_dump($different['1']); // output: array(1) { [0]=> array(0) { } }
$different['1'] = array_diff($items,$list['1']);
var_dump($different['1']); // output: array(0) { }
答案 4 :(得分:0)
$list['1'][] ='23';
$list['1'][] ='24';
$list['1'][] ='25';
$list['1'][] ='26';
$items=array("23","24");
$different['1'][] = array_diff($list['1'],$items);
你的array_diff函数的参数序列是错误的。这就是为什么它会给你null。尝试上面的代码。
答案 5 :(得分:0)
对$ list数组中的每个元素使用for循环,并在该循环中添加以下代码
if(!in_array($list[1][0], $items)){
array_push($items, $list[1][3]);
}
print_r($items);