🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ پویا پارسایی
گرفتن value در آرایه بیش از سه بعد
محمد مجتبی احمدی حل شده توسط محمد مجتبی احمدی

با عرض سلام و ادب خدمت استاد گرامی و همه دوستان عزیز

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

برای مثال در این آرایه میخوام به value‌های ‘score’ همه ی دانش آموزان دسترسی داشته باشم.

کدهای بنده و همچنین روش هایی که برای echo استفاده کردم  به این صورته: (البته فایل رو هم ضمیمه میکنم)

<?php
$students = array(
    "Beginner" => [
        "levelA" => [
            [
                "firstname" => "Pouya",
                "lastname" => "Parsaei",
                "phonenumber" => 9339658613,
                "score" => 100
            ],
            [
                "firstname" => "Ali",
                "lastname" => "Soli",
                "phonenumber" => 9179892233,
                "score" => 80
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
        ],
        "levelB" => [
            [
                "firstname" => "peyman",
                "lastname" => "tabibi",
                "phonenumber" => 933964353,
                "score" => 50
            ],
            [
                "firstname" => "pari",
                "lastname" => "ehsani",
                "phonenumber" => 9175389988,
                "score" => 75
            ],
            [
                "firstname" => "saber",
                "lastname" => "abdoli",
                "phonenumber" => 9335456707,
                "score" => 85
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
        ],
        "levelC" => [
            [
                "firstname" => "babak",
                "lastname" => "erfani",
                "phonenumber" => 9339879966,
                "score" => 40
            ],
            [
                "firstname" => "samira",
                "lastname" => "hamidi",
                "phonenumber" => 9179896786,
                "score" => 80
            ],
            [
                "firstname" => "mandana",
                "lastname" => "asali",
                "phonenumber" => 933567895,
                "score" => 75
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
        ],
        "levelC2" => [
            [
                "firstname" => "Pouya",
                "lastname" => "Parsaei",
                "phonenumber" => 9339658613,
                "score" => 100
            ],
            [
                "firstname" => "Ali",
                "lastname" => "Soli",
                "phonenumber" => 9179892233,
                "score" => 80
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
        ],
    ],
    "Intermediate" => [
        "levelD" => [
            [
                "firstname" => "Pouya",
                "lastname" => "Parsaei",
                "phonenumber" => 9339658613,
                "score" => 100
            ],
            [
                "firstname" => "Ali",
                "lastname" => "Soli",
                "phonenumber" => 9179892233,
                "score" => 80
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
        ],
        "levelE" => [
            [
                "firstname" => "Pouya",
                "lastname" => "Parsaei",
                "phonenumber" => 9339658613,
                "score" => 100
            ],
            [
                "firstname" => "Ali",
                "lastname" => "Soli",
                "phonenumber" => 9179892233,
                "score" => 80
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
        ],
        "levelF" => [
            [
                "firstname" => "Pouya",
                "lastname" => "Parsaei",
                "phonenumber" => 9339658613,
                "score" => 100
            ],
            [
                "firstname" => "Ali",
                "lastname" => "Soli",
                "phonenumber" => 9179892233,
                "score" => 80
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
        ],
        "levelF2" => [
            [
                "firstname" => "Pouya",
                "lastname" => "Parsaei",
                "phonenumber" => 9339658613,
                "score" => 100
            ],
            [
                "firstname" => "Ali",
                "lastname" => "Soli",
                "phonenumber" => 9179892233,
                "score" => 80
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
        ],
    ],
    "advanecd" => [
        "levelG" => [
            [
                "firstname" => "Pouya",
                "lastname" => "Parsaei",
                "phonenumber" => 9339658613,
                "score" => 100
            ],
            [
                "firstname" => "Ali",
                "lastname" => "Soli",
                "phonenumber" => 9179892233,
                "score" => 80
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
        ],
        "levelH" => [
            [
                "firstname" => "Pouya",
                "lastname" => "Parsaei",
                "phonenumber" => 9339658613,
                "score" => 100
            ],
            [
                "firstname" => "Ali",
                "lastname" => "Soli",
                "phonenumber" => 9179892233,
                "score" => 80
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
        ],
        "levelJ" => [
            [
                "firstname" => "Pouya",
                "lastname" => "Parsaei",
                "phonenumber" => 9339658613,
                "score" => 100
            ],
            [
                "firstname" => "Ali",
                "lastname" => "Soli",
                "phonenumber" => 9179892233,
                "score" => 80
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
        ],
        "levelK" => [
            [
                "firstname" => "Pouya",
                "lastname" => "Parsaei",
                "phonenumber" => 9339658613,
                "score" => 100
            ],
            [
                "firstname" => "Ali",
                "lastname" => "Soli",
                "phonenumber" => 9179892233,
                "score" => 80
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
            [
                "firstname" => "majid",
                "lastname" => "bagheri",
                "phonenumber" => 9335676489,
                "score" => 70
            ],
        ],
    ]
);
// foreach ($students as $key => $value) {
//      if ($value < 75)continue;
//      print_r($key);echo "<br>";
//      print_r($value); echo "<br>";
// echo "$key : {$value["levelA"][0]["firstname"]}
// {$value["levelA"][0]["lastname"]} <br>";
// }

علیک سلام ‌پویا جان

راه حل که زدم حلقه تو در تو هستش٬ از نظر الگوریتمی زمان اش زیاده اما برای این مسئله جواب میده

تو این  حلقه foreach وقتی value بر میگردونه اون یک آرایه هست

منم از این آرایه که بر میگردونه برای حلقه بعدی استفاده کردم تا که به قیمت score رسیدم

امیدوارم مشکلت رو حل کرده باشم

سپاس

 

 

foreach($students as $key => $value){
    echo"$key: <br>";
    foreach($value as $key2 => $value2){
        echo "$key2: <br>";
        foreach($value2 as $key3 => $value3){
            echo "$key3 = {$value3["score"]} <br>";
        }
    }
}
بهترین پاسخ
محمد مجتبی احمدی ۰۲ تیر ۱۴۰۰، ۱۰:۳۰