💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۸ حسن سهرابیان
چالش برنامه نویسی loop type FOR
جامعه پی اچ پی ایجاد شده در ۰۶ بهمن ۱۳۹۸

با توجه به آرایه ذیل و مقدار خروجی ذکر شده با استفاده از حلقه‌های تو در تو ( for ) مقادیر را به صورت پویا استخراج و مانند نمونه چاپ نمایید . (آرایه مذکور از نوع دو بعدی می‌باشد برای شمارش ایندکس از i , j استفاده نمایید)

 

نمونه آرایه :

array(["efran", 20], ["maryam", 28], ["ehsan", 18], ["sara", 22])

خروجی (عینا مانند نمونه باشد)

name: efran age: 20
name: maryam age: 28
name: ehsan age: 18

name: sara age: 22

 

نمونه سورس کد برای استفاده بیشتر قرار گرفته است نسبت به درج کد تکراری خود داری نمایید . ( چالش به منظور تمرین بیشتر شما ایجاد شده است بنابراین برای حل مثال از نگاه کردن به سورس کد خود داری فرمایید)

 

 

 

<?php
    // for ($i=0; $i < ; $i++) { 
    //     # code...
    // }
    $users = array(["efran", 20], ["maryam", 28], ["ehsan", 18], ["sara", 22]);
    // print_r($users);
    for ($i=0; $i < count($users) ; $i++) {
      for ($j=0; $j < count($users[$i]) ; $j++) { 
           # code...
            // print_r($users[$i][$j]." ");
            switch ($j) {
                case 0:
                    # code...
                    $name = $users[$i][$j];
                    break;
                default:
                    # code...
                    $age = $users[$i][$j];
                    break;
            }
            //echo"<br>";
            //or
            //echo"{$users[$i][$j]}";
      }
      echo"name: $name  "."age: $age ".",  "."<br>";
 }
 // count number of array member
 // echo sizeof($users); 

 

نیازی به دوتا حلقه نیست ولی من هم تک حلقه ای نوشتم هم دو حلقه ای

  $arr = array(
        ["efran", 20], ["maryam", 28],
        ["ehsan", 18], ["sara", 22]
    );
    for ($i = 0, $size = count($arr); $i < $size; $i++) {
        //with one for loop
        echo "name : {$arr[$i][0]} age : {$arr[$i][1]}" . '<br>';
        //if want two for loop
        /* $output = '';
        for ($j = 0; $j <= 1; $j++) {
            $output = $j == 0 ? $output . "name : {$arr[$i][$j]}" : $output . "age : {$arr[$i][$j]}";
        }
        echo $output . '<br>';*/
    }

 

مرتضی ترکمن ۰۶ بهمن ۱۳۹۸، ۱۲:۵۲

چالش خوبی بود.واقعا تشکر میکنم از شما آقایی سهرابیان عزیز.

اگر منظورتونو درست متوجه شده باشم استفاده از حلقه تودرتوی for بوده که من به این شکل انجامش دادم.ولی روش خودتون و اقای ترکمن خیلی خلاقانه بود.

<?php
$arr = [["erfan", 20], ["maryam", 28], ["ehsan", 18], ["sara", 22]];
//First For Loop
for ($i = 0; $i < count($arr); $i++) {
    echo "name : {$arr[$i][0]}";
    //Secend For Loop
    for ($j = 0; $j < count($i); $j++) {
        echo " age : {$arr[$i][1]} <br>";
    }
};
/* output code:
name : erfan age : 20
name : maryam age : 28
name : ehsan age : 18
name : sara age : 22
*/

 

جبار محمدی ۰۶ بهمن ۱۳۹۸، ۱۳:۳۹

من یه اصلاحی بزنم:

الان کامنتتون دیدم در مورد پویا بودن کد پس من اصلاح میکنم کدمو:

<?php
$arr = [["erfan", 20], ["maryam", 28], ["ehsan", 18], ["sara", 22]];
//First For Loop
for ($i = 0; $i < count($arr); $i++) {
    $name = $arr[$i][0];
    //Secend For Loop
    for ($j = 0; $j < count($i); $j++) {
        $age = $arr[$i][1] . '<br>';
    }
    // Print 
    echo "Name : {$name}" .' '. "Age : {$age}";
};

 

جبار محمدی ۰۶ بهمن ۱۳۹۸، ۱۴:۱۰
$array = array(["efran", 20], ["maryam", 28], ["ehsan", 18], ["sara", 22]);
$count = sizeof($array);
for( $counter = 0  ; $counter <  $count ; $counter++){
    echo "name: {$array[$counter][0]} age: {$array[$counter][1]} <br>";
}
ایرادات منم اگه بگید ممنون میشم دوستان

 

mahdi mortezaee ۰۷ بهمن ۱۳۹۸، ۱۲:۰۵

سلام و عرض ادب

ممنون میشم کد من رو هم نگاه کنید و ایرادها رو بهم بگید

با تشکر

$students = array(["efran", 20], ["maryam", 28], ["ehsan", 18], ["sara", 22]);
for($m=0;$m<count($students);$m++){
    for($n=0;$n<=0;$n++)
    {
        $b = 1;
        echo "name : ".$students[$m][$n]." age : ".$students[$m][$b]."<br>";
    }
}

output //

name : efran age : 20
name : maryam age : 28
name : ehsan age : 18
name : sara age : 22

دیاکو دیندار ۲۱ خرداد ۱۳۹۹، ۱۵:۳۳

مرسی از چالش  آقای سهرابیان . من با  حلقه while نوشتم.

​
$users=array(["efran", 20], ["maryam", 28], ["ehsan",18], ["sara", 22]);
$att=count($users);
$a=0;
while ($a <$att) 
{
   echo "Name: {$users[$a][0]}  age:{$users[$a][1]} <br>";
   $a++;
}
/*
outopt: خروجی
Name: efran age:20
Name: maryam age:28
Name: ehsan age:18
Name: sara age:22*/
​

 

آرش مکینیان ۲۵ مهر ۱۳۹۹، ۱۲:۳۱

من وایل تودرتو نوشتم ولی نمیدونم چرا فقط یکی از داخل آرایه رو چاپ میکنه ممنون میشم کمکم کنید

$users = array(["alireza",37],["amirali",36],["reyhane",34],["mahboube",37]);
$i = 0;
$j = 0;
while ($i < sizeof($users)){
    while ($j < sizeof($users[$i])){
        switch ($j){
            case 0:
                echo "name : ". $users[$i][$j];
                $j++;
                break;
            default:
            echo " age: ". $users[$i][$j]."<br>";
            $j++;
        }
    }
    $i++;
}
علیرضا جهانی ۲۹ آذر ۱۳۹۹، ۲۰:۴۵
$users = array(["alireza", 37], ["amirali", 36], ["reyhane", 34], ["mahboube", 37]);
$i = 0;
while ($i < sizeof($users)) {
    $j = 0;
    while ($j < sizeof($users[$i])) {
        switch ($j) {
            case 0:
                echo "name : " . $users[$i][$j];
                $j++;
                break;
            default:
                echo " age: " . $users[$i][$j] . "<br>";
                $j++;
        }
    }
    $i++;
}
Amir F ۲۷ دی ۱۳۹۹، ۱۴:۰۴