php中单个数组的多维数组的数组差异

I want difference of multidimensional array with single array. I dont know whether it is possible or not. But my purpose is find diference.

My first array contain username and mobile number

array1
(
array(lokesh,9687060900),
array(mehul,9714959456),
array(atish,9913400714),
array(naitik,8735081680)
)

array2(naitik,atish)

then I want as result

result( array(lokesh,9687060900), array(mehul,9714959456) )

I know the function array_diff($a1,$a2); but this not solve my problem. Please refer me help me to find solution.

Try this-

    $array1 = array(array('lokesh',9687060900),
    array('mehul',9714959456),
    array('atish',9913400714),
    array('naitik',8735081680));

    $array2 = ['naitik','atish'];

    $result = [];
        foreach($array1 as $val2){

        if(!in_array($val2[0], $array2)){
            $result[] = $val2;
        }
    }

echo '<pre>';
print_r($result);

Hope this will help you.

You can use array_filter or a simple foreach loop:

$arr = [ ['lokesh', 9687060900],
         ['mehul', 9714959456],
         ['atish', 9913400714],
         ['naitik', 8735081680] ];

$rem = ['lokesh', 'naitik'];

$result = array_filter($arr, function ($i) use ($rem) {
    return !in_array($i[0], $rem); });

print_r ($result);

The solution using array_filter and in_array functions:

$array1 = [
    array('lokesh', 9687060900), array('mehul', 9714959456),
    array('atish', 9913400714),  array('naitik', 8735081680)
];
$array2 = ['naitik', 'atish'];

$result = array_filter($array1, function($item) use($array2){
    return !in_array($item[0], $array2);
});

print_r($result);

The output:

Array
(
    [0] => Array
        (
            [0] => lokesh
            [1] => 9687060900
        )

    [1] => Array
        (
            [0] => mehul
            [1] => 9714959456
        )
)

The same can be achieved by using a regular foreach loop:

$result = [];
foreach ($array1 as $item) {
    if (!in_array($item[0], $array2)) $result[] = $item;
}