سوال ) مانند نمونه سه آرایه PHP Multidimensional Arrays داده شده است . با توجه به آرایه مذکور یک تابع جمع برای بدست آوردن جمع نمرات دانشجویان Nerd در ستون دوم (marks) از هر سطر با ID مشخص شده ( 920 , 921 , 922 ) بنویسید و نیز تابع ای دیگر برای جایگزینی مقادیر جمع بدست آمده به داخل فیلد marks بنویسید به گونه ای که حاصل بدست آمده در فیلد marks جایگزین مقادیر قبلی شود همچنین در یکی از توابع بررسی نمائید که اگر کاربر در آرایه ورودی بیشتر از ۷ عدد وارد کرد رشته ی "that's bullshit " چاپ شود و نیز خروجی را مانند نمونه چاپ نمائید :
آرایههای موجود طبق صورت سوال :
$studentAndMarks = array (
920 => array(
"name" => "SMITH",
"marks" => [2,6,7,8,9,9,12] // 53
),
921 => array (
"name" => "JOHNSON",
"marks" => [2,6,7,8,9,10,12] // 54
),
922 => array (
"name" => "WILLIAMS",
"marks" => [2,6,7,8,9,8,12] // 52
)
);
خروجیهای اول و دوم به ترتیب ( چاپ کردن خروجیها ) :
خروجی اول
array(3) { [920]=> array(2) { ["name"]=> string(5) "SMITH" ["marks"]=> int(53) } [921]=> array(2) { ["name"]=> string(7) "JOHNSON" ["marks"]=> int(54) } [922]=> array(2) { ["name"]=> string(8) "WILLIAMS" ["marks"]=> int(52) } }
یا خروجی در حالت console ویرایشگر vscode حالت بالا به شکل زیر خواهد بود :
array(3) {
[920]=>
array(2) {
["name"]=>
string(9) "sohrabian"
["marks"]=>
int(53)
}
[921]=>
array(2) {
["name"]=>
string(6) "khoram"
["marks"]=>
int(54)
}
[922]=>
array(2) {
["name"]=>
string(4) "ziai"
["marks"]=>
int(52)
}
}
خروجی دوم ( باید به شکل زیر چاپ شود ) :
/*
920 name : SMITH ---marks : 53
921 name : JOHNSON ---marks : 54
922 name : WILLIAMS ---marks : 52
/*
سورس الگوریتم مثال بالا :
<?php
function sumMarks (Array $marks) {
$digit_marks = 0 ;
if (count($marks)<=7) {
for ($i=0; $i < count($marks) ; $i++) {
$digit_marks = $marks[$i] + $digit_marks;
}
return $digit_marks;
}else{
return "that's bullshit";
}
}
function getArray (Array $array) {
$studentAndMarks = $array ;
$keysID = array_keys($studentAndMarks);
for( $i=0;$i<count($keysID);$i++) {
$keys = array_keys($studentAndMarks[$keysID[$i]]);
if (is_array($studentAndMarks[$keysID[$i]]["marks"])) {
// var_dump($studentAndMarks[$keysID[$i]]["marks"]);
echo "<br>";
$studentAndMarks[$keysID[$i]]["marks"]=sumMarks($studentAndMarks[$keysID[$i]]["marks"]);
}
}
return $studentAndMarks;
// multiSort($studentAndMarks);
}
$studentAndMarks = array (
920 => array(
"name" => "SMITH",
"marks" => [2,6,7,8,9,9,12] // 53
),
921 => array (
"name" => "JOHNSON",
"marks" => [2,6,7,8,9,10,12] // 54
),
922 => array (
"name" => "WILLIAMS",
"marks" => [2,6,7,8,9,8,12] // 52
)
);
// var_dump($studentAndMarks);
// echo "<br><br><br>";
var_dump(getArray($studentAndMarks));
echo "<br><br><br>";
foreach (getArray($studentAndMarks) as $key => $value) {
echo "$key " ;
foreach ($value as $key => $val) {
if($key == "name") {
echo "$key : $val ---";
}else{
echo "$key : $val ";
}
} echo "<br>";
}
در انتها متذکر میشوم جواب دادن به آزمونهای سون لرن به تنهایی باعث موفقیت شما نخواهند شد بلکه دست و پنجه نرم کردن با الگوریتم دید شما و تفکر الگوریتمیک را به شما خواهند داد .