Если вам нужно убрать из первого массива данные что есть во втором, попробуйте так:
$array1 = [
[
'pname' => 'Andrey_Faste',
'vkid' => 2324324
],[
'pname' => 'Aleksey_Andreev',
'vkid' => null
],[
'pname' => 'Ivan_Alekseev',
'vkid' => null
],[
'pname' => 'Ivan_Ivanov',
'vkid' => null
],[
'pname' => 'Ivan_Petrov',
'vkid' => 344366423498
]
];
$array2 = [
[
'pname' => 'Ivan_Ivanov',
'vkid' => null
],[
'pname' => 'Ivan_Petrov',
'vkid' => null
]
];
// Перебирать будем первый массив, по этому создадим третий массив
// который будет содержать все `pname` из второго массива
$array3 = [];
foreach ($array2 as $item) {
array_push($array3, $item['pname']);
}
// Далее перебираем первый массив и проверяем есть ли совпадения
// со вторым, если есть - удаляем
foreach ($array1 as $key=>$item) {
if (in_array($item['pname'], $array3)) unset($array1[$key]);
}
// Вывести результат
echo "<pre>";
print_r($array1);
Результат:
Array
(
[0] => Array
(
[pname] => Andrey_Faste
[vkid] => 2324324
)
[1] => Array
(
[pname] => Aleksey_Andreev
[vkid] =>
)
[2] => Array
(
[pname] => Ivan_Alekseev
[vkid] =>
)
)