T.chegini
5 سال پیش توسط T.chegini مطرح شد
5 پاسخ

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

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

ممنون


ثبت پرسش جدید
داود خانی
تخصص : برنامه نویس لاراول و متخصص سئو...
@davoodkhany 5 سال پیش آپدیت شد
2

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


   $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 5 سال پیش مطرح شد
1

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


mahdi khanzadi
تخصص : backend developer at Snapp mar...
@khanzadimahdi 5 سال پیش مطرح شد
1

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


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
1

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


داود خانی
تخصص : برنامه نویس لاراول و متخصص سئو...
@davoodkhany 5 سال پیش آپدیت شد
2

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


   $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;
}
?>

T.chegini
@t.chegini 5 سال پیش مطرح شد
0

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


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

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