چطور دو آرایه چند بعدی که به صورت key=>value هستن رو با هم ادغام کنم، با این شرط که عناصر تکراری رو فقط یک بار در آرایه مقصد بذاره؟ منظور از عناصر تکراری مثلا فیلد id در هر دو آرایه رو بررسی کنه و اونهایی که id تکراری دارن رو فقط یک بار در آرایه مرج شده مقصد بیاره.
ممنون
سلام منم یه نمونه داشتم داخل کد هام اونو براتون میزارم اگه بدردتون خورد استفاده کنید .
$merg1 = array_merge($array1, $array2);
//array_unique — Removes duplicate values from an array
$merg = array_unique($merg1, SORT_REGULAR);
اینم یه مثال دیگه تو خود سایت php هستش که با استفاده از map این کارو کرده .
<?php
function super_unique($array)
{
$result = array_map("unserialize", array_unique(array_map("serialize", $array)));
foreach ($result as $key => $value)
{
if ( is_array($value) )
{
$result[$key] = super_unique($value);
}
}
return $result;
}
?>
با استفاده از array_merge اول ترکیب میکنید و بعد با array_unique میتونید موارد تکراری در key رو پاک بفرمایید
اینها مربوط به لاراول نمیشه مربوط به php هست .
تابع array_unique در PHP داریم که موارد تکراری رو حذف میکنه اما از یک آرایه ساده.. برای اینکه این عملکرد رو در آرایه های چند بعدی داسته باشی میتونی از array_unique و array_map استفاده کنی
سلام منم یه نمونه داشتم داخل کد هام اونو براتون میزارم اگه بدردتون خورد استفاده کنید .
$merg1 = array_merge($array1, $array2);
//array_unique — Removes duplicate values from an array
$merg = array_unique($merg1, SORT_REGULAR);
اینم یه مثال دیگه تو خود سایت php هستش که با استفاده از map این کارو کرده .
<?php
function super_unique($array)
{
$result = array_map("unserialize", array_unique(array_map("serialize", $array)));
foreach ($result as $key => $value)
{
if ( is_array($value) )
{
$result[$key] = super_unique($value);
}
}
return $result;
}
?>
خودم راه حلشو پیدا کردم. فقط کافیه دو آرایه رو با هم + کرد. با گذاشتن + بین دو آرایه، خودش آرایه ها رو با هم ادغام میکنه و عناصر تکراری رو فقط یک بار در خروجی میاره.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟