🔥 ۴۰ درصد تخفیف ثبت‌نام دوره‌ها قبل از افزایش قیمت‌ها
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ سامیار اشراقی
نمایش عناصر ارایه‌های چندبعدی با استفاده از ساختارهای شرطی و حلقه ها
مازیار لنکرانی حل شده توسط مازیار لنکرانی

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

$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>';
};
سامیار اشراقی ۲۸ دی ۱۳۹۹، ۱۰:۰۹