2012-08-08 169 views
0

我有一個二維數組inarray二維數組

$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"); 

我要檢查是否$表[「1」值是裏面的$項目不如果項目不然後將它們存儲到一個新的數組

我試圖

$different['1'][] = array_diff($items,$list['1']); 

但如果沒有區別它創建了密鑰,但空值的數組

$不同['1]

['1'] => Array 
    (
     [0] => 
    ) 
+1

添加以下代碼根據數組差的當前的例子的結果是正確的,因爲$物品1的所有元素的數組中存在的$ list ['1']。那麼這裏有什麼問題? – 2012-08-08 09:37:31

+1

Plz首先修復語法錯誤。 – xdazz 2012-08-08 09:41:21

+0

@ Shades88想接受,但它需要7分鐘 – meWantToLearn 2012-08-08 09:59:52

回答

2
if($diff = array_diff($items,$list['1])){ 
    $different['1'][] = $diff; 
} 

這應該做的伎倆

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) { 
} 
0

上打印試試這個:

$item = array('23','24'); 
foreach($list['1'] as $listItem) { 
    if(!in_array($listItem, $item)) { 
     $different['1'][] = $listItem; 
    } 
} 
+0

對不起,以前有一個嚴重的錯誤。修正 – Shades88 2012-08-08 09:47:09

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) { } 
0
 $list['1'][] ='23'; 
    $list['1'][] ='24'; 
    $list['1'][] ='25'; 
    $list['1'][] ='26'; 

    $items=array("23","24"); 

$different['1'][] = array_diff($list['1'],$items); 

您arr_diff函數的參數順序是錯誤的。這就是爲什麼它會給你null。嘗試上面的代碼。

0

使用for循環中的$列表數組的每一個元素,並在該循環

if(!in_array($list[1][0], $items)){ 
    array_push($items, $list[1][3]); 
} 

print_r($items);