سید حسین رضوی
5 سال پیش توسط سید حسین رضوی مطرح شد
3 پاسخ

مرج کردن یک آرایه که تعدادش نامشخصه

سلام ببخشید من یه آرایه خالی دارم و یه آرایه دوبعدی که مشخص نیست این آرایه چند ایندکس داره برای مثال
$services[0] , $services[1] , ....
حالا من می خوام این ارایه دوبعدی رو تبدیل کنم به آرایه تک بعدی و برای این کار از array_merge استفاده میکنم، کاری که به ذهنم رسید ولی خوب قطعا دارای مشکل هست این بود

if (count($services) == 2){
                $tests = array_merge($tests, $services[0], $services[1]);
            }

خوب قطعا این کار درست نیست شاید آرایه من تا 500 تا خانه داشته باشه باید من بیام و 500 تا if بزنم؟؟
راه حل شما چیه؟؟


ثبت پرسش جدید
vahid Mohammadi
@viva.mohammadi 5 سال پیش مطرح شد
0

@hossein.r.1442

برای تبدیل آرایه ۲بعدی به یک بعدی از فانکشن زیر می تونید استفاده کنید.

function array_2d_to_1d ($input_array) {
    $output_array = array();

    for ($i = 0; $i < count($input_array); $i++) {
      for ($j = 0; $j < count($input_array[$i]); $j++) {
        $output_array[] = $input_array[$i][$j];
      }
    }

    return $output_array;
}

پدرام کوثری
@persianped 5 سال پیش آپدیت شد
0

سلام به نظر بنده اول کالکشنش کن بعد تابع flatten رو صدا بزن بعد اگه خواستی تبدیلش کن به آرایه.

$collection = collect(['name' => 'taylor', 'languages' => ['php', 'javascript']]);

$flattened = $collection->flatten();

$flattened->all();

// ['taylor', 'php', 'javascript'];

امیرحسین دشتی زاده
@amirhossein.d.z 5 سال پیش آپدیت شد
1

در راه حل زیر مهم نیست آرایه services چند بعدی باشه :

$tests = [];
array_walk_recursive($services, function($a) use (&$tests) {
    $tests[] = $a;
});

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

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