У меня есть 2 массива:
$haystack = array("rowid" => array("100", "200"), "description" => array ("something", "something else"));
$needle = array("rowid" => array("200", "300", "400"), "description" => array ("something else", "other", "other else"), "test" => "bye");
Я хочу сделать array_diff с $ needle и $ haystack, но я получаю ошибку, потому что массив $ needle является многомерным, но ключ «test» имеет только одно измерение:
foreach ($needle as $key => $value) :
$left[$key] = array_diff($needle[$key],$haystack[$key]);
endforeach;
Предупреждение: array_diff (): аргумент № 1 не является массивом
Предупреждение:
array_diff (): аргумент № 2 не является массивом
Как я могу решить проблему?
Мне нужно сохранить в массиве $ left только значения «rowid» и «description» (я могу отказаться от значения «test»).
$ слева должно быть:
Array
(
[rowid] => Array
(
[0] => 300
[1] => 400
)
[description] => Array
(
[0] => other
[1] => other else
)
)
Спасибо за помощь!
удалить «test» => «пока»; от $ needle или напишите их правильно.
//array_diff takes arguments as array.
foreach ($needle as $key => $value) :
$left[$key] = array_diff($needle[$key],$haystack[$key]);
//when $key = test $needle[$key]=bye which is not array
//thats why you got Warning: array_diff(): Argument #1 is not an array this warning
//again when $key=test ,$haystack[$key]=null which is not array
//thats why you got Warning: array_diff(): Argument #2 is not an array
endforeach;
Других решений пока нет …