如何在php

时间:2016-08-11 10:16:37

标签: php arrays multidimensional-array

我有两个数组两个数组。首先是多维的,其他是单维的。我想找到它们之间的区别。我怎么找到。

$ arrayresult

数组1

Array ( 
    [0] => Array ( [0] => ishani.lad [1] => 9033187384 ) 
    [1] => Array ( [0] => rajkumar.prajapati [1] => 8460078459 ) 
    [2] => Array ( [0] => lokesh.bhandari [1] => 9687060900 ) 
    [3] => Array ( [0] => shishanshu.rai [1] => 8401915337 ) 
    [4] => Array ( [0] => vishal.dake [1] => 9879815299 ) 
    [5] => Array ( [0] => mohsin [1] => 8347163123 )
)

$ useduser

数组2

Array (
    [0] => ishani.lad 
    [1] => rajkumar.prajapati
    [2] => lokesh.bhandari     
)

我需要差异如下结果 的结果

Array (
    [0] => Array ( [0] => shishanshu.rai [1] => 8401915337 ) 
    [1] => Array ( [0] => vishal.dake [1] => 9879815299 ) 
    [2] => Array ( [0] => mohsin [1] => 8347163123 )
)

我使用了解决方案

$resultremainig = [];
foreach($arrayresult as $val2){                            
    if(!in_array($val2[0], $useduser)){                                                  
        echo $val2[0]."<br>";
        $resultremainig[] = $val2;
    }                            
}

但它也显示了最后的记录。上述代码的结果如下。它总是显示我在第二个阵列中的最后一个记录

Array (
    [0] => Array ( [0] => lokesh.bhandari [1] => 9687060900 ) 
    [1] => Array ( [0] => shishanshu.rai [1] => 8401915337 ) 
    [2] => Array ( [0] => vishal.dake [1] => 9879815299 ) 
    [3] => Array ( [0] => mohsin [1] => 8347163123 )
)

5 个答案:

答案 0 :(得分:0)

您可以使用array_filter()

protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
    this.DataContext = null;
    base.OnNavigatingFrom(e);
}

答案 1 :(得分:0)

您好,您也可以试试这个

    $one = array(array('ishani.lad',9033187384),array('rajkumar.prajapati',8460078459),array('lokesh.bhandari',9687060900),array('shishanshu.rai',8401915337),array('vishal.dake',9879815299),array('mohsin',8347163123));
            $two = array('ishani.lad','rajkumar.prajapati','lokesh.bhandari');
            foreach($one as $array){
                    if(!in_array($array[0],$two)){              
                    $final[] = $array;
                }           
            }
 echo "<pre>";print_r($final);

输出

   Array
(
    [0] => Array
        (
            [0] => shishanshu.rai
            [1] => 8401915337
        )

    [1] => Array
        (
            [0] => vishal.dake
            [1] => 9879815299
        )

    [2] => Array
        (
            [0] => mohsin
            [1] => 8347163123
        )

)

答案 2 :(得分:0)

  

如果你想要,你可以尝试使用嵌套循环:

<?php

    $arrOne = $arrFinal = [
        ["ishani.lad",         9033187384],
        ["rajkumar.prajapati", 8460078459],
        ["lokesh.bhandari"   , 9687060900],
        ["shishanshu.rai"    , 8401915337],
        ["vishal.dake"       , 9879815299],
        ["mohsin"            , 8347163123],
    ];

    $arrTwo = [
        "ishani.lad",
        "rajkumar.prajapati",
        "lokesh.bhandari",
    ];

    foreach($arrOne as $key=>$item){
        foreach($arrTwo as $k=>$v){
            if(in_array($v, $item)){
                unset($arrFinal[$key]);
            }
        }
    }

    var_dump($arrFinal);

    // PRODUCES:::
    array (size=3)
      3 => 
        array (size=2)
          0 => string 'shishanshu.rai' (length=14)
          1 => int 8401915337
      4 => 
        array (size=2)
          0 => string 'vishal.dake' (length=11)
          1 => int 9879815299
      5 => 
        array (size=2)
          0 => string 'mohsin' (length=6)
          1 => int 8347163123

答案 3 :(得分:0)

在检入$useduser数组

之前修剪该值
$resultremainig = [];
foreach($arrayresult as $val2){  
  // this removes any extra spaces from the search string                          
  if(!in_array(trim($val2[0]), $useduser)){                                               
  echo $val2[0]."<br>";
  $resultremainig[] = $val2;
}     

答案 4 :(得分:-1)

您需要使用array_diff功能。

将2个数组存储在变量中并进行比较。