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

php -
3 سال پیش توسط سید حسین رضوی مطرح شد
آفلاین
user-avatar
سید حسین رضوی ( 81795 تجربه )
3 سال پیش
تخصص : برنامه نویس وب و طراح رابط کاربری

لینک کوتاه اشتراک گذاری

0

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

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

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

آفلاین
user-avatar
vahid Mohammadi ( 37202 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

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;
}
آفلاین
user-avatar
پدرام کوثری ( 7563 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

0

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

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

$flattened = $collection->flatten();

$flattened->all();

// ['taylor', 'php', 'javascript'];
آفلاین
user-avatar
امیرحسین دشتی زاده ( 6499 تجربه )
3 سال پیش

لینک کوتاه اشتراک گذاری

1

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

$tests = [];
array_walk_recursive($services, function($a) use (&$tests) {
    $tests[] = $a;
});
برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.