راکت
حل شده

ادغام چند آرایه در لاراول

5 پاسخ

چطور دو آرایه چند بعدی که به صورت key=>value هستن رو با هم ادغام کنم، با این شرط که عناصر تکراری رو فقط یک بار در آرایه مقصد بذاره؟ منظور از عناصر تکراری مثلا فیلد id در هر دو آرایه رو بررسی کنه و اونهایی که id تکراری دارن رو فقط یک بار در آرایه مرج شده مقصد بیاره.

ممنون

ثبت پرسش جدید

پاسخ‌ها

5
داود خانی
داود خانی
@davoodkhany

تخصص: برنامه نویس لاراول و متخصص سئو

بهترین پاسخ

سلام منم یه نمونه داشتم داخل کد هام اونو براتون میزارم اگه بدردتون خورد استفاده کنید .


   $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;
}
?>
حسام موسوی
حسام موسوی
@hesammousavi

تخصص: طراح و برنامه نویس

با استفاده از array_merge اول ترکیب میکنید و بعد با array_unique میتونید موارد تکراری در key رو پاک بفرمایید
اینها مربوط به لاراول نمیشه مربوط به php هست .

mahdi khanzadi
mahdi khanzadi
@khanzadimahdi

تخصص: Software engineer

در صورتی که ارایه ها چند بعدی هستن از تابع array_merge_recursive استفاده کنید.

شاید پاسخ شما همین‌جا باشد

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

تابع array_unique در PHP داریم که موارد تکراری رو حذف میکنه اما از یک آرایه ساده.. برای اینکه این عملکرد رو در آرایه های چند بعدی داسته باشی میتونی از array_unique و array_map استفاده کنی

T.chegini
T.chegini
@t.chegini

خودم راه حلشو پیدا کردم. فقط کافیه دو آرایه رو با هم + کرد. با گذاشتن + بین دو آرایه، خودش آرایه ها رو با هم ادغام میکنه و عناصر تکراری رو فقط یک بار در خروجی میاره.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام