簡體   English   中英

inarray 2d數組

[英]inarray 2d array

我有一個2D陣列

$list['1'][] ='23';
$list['1'][] ='24';
$list['1'][] ='25';
$list['1'][] ='26';

和1d陣列

$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] => 
    )
if($diff = array_diff($items,$list['1])){
     $different['1'][] = $diff;
}

這應該可以解決問題

我無法重現這種行為。

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

嘗試這個:

$item = array('23','24');
foreach($list['1'] as $listItem) {
    if(!in_array($listItem, $item)) {
        $different['1'][] = $listItem;
    }
}
$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) { }
      $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。 嘗試上面的代碼。

對$ list數組中的每個元素使用for循環,並在該循環中添加以下代碼

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

print_r($items);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM