با توجه به آرایه ذیل و مقدار خروجی ذکر شده با استفاده از حلقه های تو در تو ( 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++;
}