Array ( [0] => Array ( [name] => 1 ) [1] => Array ( [name] => 2 ) [2] => Array ( [name] => 3 ) - $array1
Array ( [0] => Array ( [name] => 1 ) [1] => Array ( [name] => 2 ) - это $array2
array_diff($array1[0], $array2[0]);
при print_r результата - пустой массив Оо
Как мне получить разницу между двумя массивами, т.е значение 3 из $array1?
Спустя 15 минут, 3 секунды (15.11.2010 - 22:34) kirik написал(а):
Цитата (Pulse @ 15.11.2010 - 14:19) |
т.е значение 3 из $array1? |
Как вы собираетесь получить значение 3, если сравниваете нулевые элементы обоих массивов. Да даже если сравнивать целые массивы - ничего не выйдет. array_diff не проходит по вложенным массивами, нужно делать через цикл.
Спустя 11 часов, 2 минуты, 56 секунд (16.11.2010 - 09:37) linker написал(а):
К сожалению тут даже через циклы не пройдет. А почему бы не использовать массивы вида
$array1 = array('name' => array(1, 2, 3));тогда очень замечательно получается результат "3", плюс экономия памяти под массив.
$array2 = array('name' => array(1, 2));
print_r(array_diff($array1['name'], $array2['name']));
Спустя 6 часов, 26 минут, 11 секунд (16.11.2010 - 16:03) Pulse написал(а):
В принципе уже переделал, просто вывел массивы в одномерный и спокойно сравнил. Всё равно всем спасибо за ответы!