گرفتن value در آرایه بیش از سه بعد

پرسیده شده
فعالیت 1038 روز پیش
دیده شده 672 بار
0

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

من یک آرایه بیش از سه بعد رو نوشتم، ولی نمیدونم به چه صورت به یک سری 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>";
// }
فایل پیوست
test.rar
179 B

2
حذف شده

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

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

تو این  حلقه 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>";
        }
    }
}
فایل پیوست

مجتبی احمدی

توسط

مجتبی احمدی

2 تیر 00

حذف شده
ممنون آقا محمدمجتبی، این راه کاملا درسته آیا روشی وجود داره که بتونیم با یک دستور echo مقادیر "score" رو چاپ کنیم؟ اگر نه آیا این روش بهینه ترین روشه؟ روش خلاصه تری هم هست؟
حذف شده
خواهش میکنم والا راه حل دیگه به نظرم نرسید فکر نکنم دیگه راه حل داشته باشه.
مجتبی احمدی

2 تیر 00