💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ Amir F
نمایش عناصر ارایه‌های چندبعدی با استفاده از ساختارهای شرطی و حلقه ها
امیر صالحی حل شده توسط امیر صالحی

در کد زیر ما یک آرایه چند بعدی داریم که با استفاده از حلقه‌های  تو در تو اعضای آرایه‌ها را نمایش می‌دهیم , لطفا اشکالات کد رو دوستان عنوان کنید ممنون 

$cars = array(
    [
        'BMW', 'blue',
        [
            10,
            5,
            ['2003', 'Planetary']
        ],
    ],
    [
        'Benz', 'Red',
        [
            20, 
            12
        ],
    ],
    ["Volvo", 'White', 50, 32],
    [
        'Dena', 'Black',
        [
            8,
            13
        ],
    ]
);
$i = 0;
while ($i < sizeof($cars)) {
    $j = 0;
    while ($j < sizeof($cars[$i])) {
        if (gettype($cars[$i][$j]) == 'array') {
            $k = 0;
            while ($k < sizeof($cars[$i][$j])) {
                if (gettype($cars[$i][$j][$k]) == 'array') {
                    $z = 0;
                    while ($z < sizeof($cars[$i][$j][$k])) {
                        if ($z == 0) {
                            echo 'Production Year : ' . $cars[$i][$j][$k][$z] . ' / ';
                        } elseif ($z == 1) {
                            echo  'Gearbox  : ' . $cars[$i][$j][$k][$z] . ' / ';
                        } else {
                            echo 'error';
                        }
                        $z++;
                    }
                } elseif ($k == 0) {
                    echo 'Stock : ' . $cars[$i][$j][$k] . ' / ';
                } elseif ($k == 1) {
                    echo  ' Sold : ' . $cars[$i][$j][$k] . ' / ';
                } elseif ($k == 2) {
                    echo  ' sold : ' . $cars[$i][$j][$k];
                } elseif ($k == 3) {
                    echo  $cars[$i][$j][$k];
                } else {
                    echo 'ُErr';
                }
                $k++;
            }
        } else {
            if ($j == 0) {
                echo 'Model : ' . $cars[$i][$j] . ' / ';
            } elseif ($j == 1) {
                echo  'Color :' . $cars[$i][$j] . ' / ';
            } elseif ($j == 2) {
                echo  'Stock : ' . $cars[$i][$j] . ' / ';
            } elseif ($j == 3) {
                echo 'Sold : ' . $cars[$i][$j];
            } else {
                echo 'error0';
            }
        }
        $j++;
    }
    echo '<br>';
    $i++;
};

سلام و احترام

برای آرایه‌ها حلقه‌های while مناسب نیستند ولی برای تمرین خوبه مشکلی نیست، در ادامه کار با حلقه‌های foreach رو یاد خواهید گرفت که برای آرایه‌ها خیلی پر استفاده هستند

موفق باشید

بهترین پاسخ
امیر صالحی ۲۷ دی ۱۳۹۹، ۱۸:۳۶
<?php
$users = array(
    [
        'Amir',
        'Fayazi',
        25,
        [
            'php', 'wordpress', 'Seo', 'WebMaster',
            [
                'Moqadamati', 'Pishrafteh'
            ]
        ]
    ],
    [
        'Micki',
        'Nick',
        18,
        ['Android', 'Java']
    ],
    [
        'Farhad',
        'Fadavi',
        35,
        ['JS', 'Html', 'Ajax']
    ]
);
foreach ($users as $user) {
    foreach ($user as $value) {
        if (gettype($value) == 'array') {
            foreach ($value as $arrToStr) {
                if (gettype($arrToStr) == 'array') {
                    foreach ($arrToStr as $arrToStr2) {
                        if ($arrToStr[0] == $arrToStr2) {
                            echo ' / Level :' . $arrToStr2;
                        } else  echo  ' & ' . $arrToStr2;
                    }
                } else {
                    if ($value[0] == $arrToStr) {
                        echo ' Skills :' . $arrToStr;
                    } else  echo  ' & ' . $arrToStr;
                }
            }
        } else {
            if ($user[0] == $value) {
                echo 'Name : ' . $value . ' / ';
            } elseif ($user[1] == $value) {
                echo 'Family : ' . $value . ' / ';
            } elseif ($user[2] == $value) {
                echo 'Age : ' . $value . ' / ';
            };
        };
    }
    echo '<br>';
};
Amir F ۲۸ دی ۱۳۹۹، ۱۰:۰۹