🔥 با کمک هوش مصنوعی در کمتر از 6 ماه فول‌استک شوید ...
۰ ثانیه
۰ دقیقه
۰ ساعت
۸ دکتر جهان موسوی
چالش برنامه نویسی 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>";
}
ایرادات منم اگه بگید ممنون میشم دوستان

 

نیکی عالی ۰۷ بهمن ۱۳۹۸، ۱۲:۰۵

سلام و عرض ادب

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

با تشکر

$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++;
}
آذران جنتی ۲۷ دی ۱۳۹۹، ۱۴:۰۴