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

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

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

ممنون


ثبت پرسش جدید
داود خانی
داود خانی
تخصص :برنامه نویس لاراول و متخصص سئو
@davoodkhany6 سال پیشمطرح شد
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;
}
?>

حسام موسوی
حسام موسوی
تخصص :طراح و برنامه نویس
@hesammousavi6 سال پیشمطرح شد
1

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


mahdi khanzadi
mahdi khanzadi
تخصص :Software engineer
@khanzadimahdi6 سال پیشمطرح شد
1

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


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

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


داود خانی
داود خانی
تخصص :برنامه نویس لاراول و متخصص سئو
@davoodkhany6 سال پیشمطرح شد
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
@t.chegini6 سال پیشمطرح شد
0

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


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

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