Вот два массива свалка:PHP: Проверка разницы между двумя MultiDim массивами
array(2) {
[0]=> array(7) {
["id"]=> string(1) "1"
["shoppinglist_id"]=> string(1) "1"
["product_id"]=> string(1) "1"
["amount"]=> string(1) "5"
["date_added"]=> string(10) "1326912709"
["name"]=> string(7) "Tunfisk"
["supplier_id"]=> string(1) "2"
}
[1]=> array(7) {
["id"]=> string(1) "2"
["shoppinglist_id"]=> string(1) "1"
["product_id"]=> string(1) "2"
["amount"]=> string(1) "5"
["date_added"]=> string(10) "1326912713"
["name"]=> string(3) "Lax"
["supplier_id"]=> string(1) "6"
}
}
array(2) {
[0]=> array(7) {
["id"]=> string(1) "5"
["shoppinglist_id"]=> string(1) "3"
["product_id"]=> string(1) "1"
["amount"]=> string(1) "5"
["date_added"]=> string(10) "1326912810"
["name"]=> string(7) "Tunfisk"
["supplier_id"]=> string(1) "2"
}
[1]=> array(7) {
["id"]=> string(1) "6"
["shoppinglist_id"]=> string(1) "3"
["product_id"]=> string(1) "2"
["amount"]=> string(1) "5"
["date_added"]=> string(10) "1326912810"
["name"]=> string(3) "Lax"
["supplier_id"]=> string(1) "6"
}
}
Я пытался сделать array_diff(), но это не поддерживает многомерные массивы.
Итак я попробовал эту функцию:
public function multidimensional_array_diff($a1,$a2)
{
$r = array();
foreach ($a2 as $key => $second)
{
foreach ($a1 as $key => $first)
{
if (isset($a2[$key]))
{
foreach ($first as $first_arraykey => $first_value)
{
foreach ($second as $second_value)
{
if ($first_value == $second_value)
{
$true = true;
break;
}
}
if (!isset($true))
{
if($first_arraykey != "date_added" && $first_arraykey != "shoppinglist_id")
{
$r[$key][$first_arraykey] = $first_value;
}
}
unset($true);
}
}
else
{
$r[$key] = $first;
}
}
}
return $r;
}
Это не работает, либо, возвращает мне различия, что ARENT разные.
Обратите внимание, что вы можете видеть, что это не добавляет к разностному массиву, если ключ массива - date_added и shoppinglist_id (потому что в моей системе все в порядке, так как это разные).
Вышеупомянутый должен выводить пустой массив разностей, поскольку нет разницы между этими массивами (если мы не смотрим date_added и shoppinglist_id).
Как я могу сделать эту работу правильно?
Можете ли вы форматировать массив drumps – jprofitt
Ok здесь отформатированы: http://pastebin.com/4HkFyBvy – Karem