微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 PHP 中的多维数组中通过 foreach 循环回显值列表

如何解决在 PHP 中的多维数组中通过 foreach 循环回显值列表

PHP 中,我想通过 foreach 循环回显数组中的某些值,但我不知道如何执行此操作。 我尝试了很多方法,例如 $key => $valueprint_recho 代码,但它们不起作用。 例如在这个数组中,我想一一回显所有 score 值:

$students = array(
"Beginner" => [
    "levelA" => [
        [
            "firstname" => "Pouya","lastname" => "ParSAEi","phonenumber" => 9339658613,"score" => 100
        ],[
            "firstname" => "Ali","lastname" => "Soli","phonenumber" => 9179892233,"score" => 80
        ],],"levelB" => [
        [
            "firstname" => "peyman","lastname" => "tabibi","phonenumber" => 933964353,"score" => 50
        ],[
            "firstname" => "pari","lastname" => "ehsani","phonenumber" => 9175389988,"score" => 75
        ],"Intermediate" => [
    "levelD" => [
        [
            "firstname" => "Pouya","levelE" => [

        [
            "firstname" => "Pouya",);

我尝试过这些代码,但我做不到:

// 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>";
// }

如果有人能帮助我,我将不胜感激。

解决方法

如果只有分数是你想要的,你可以简单地使用 array_walk_recursive 如下。

array_walk_recursive($students,function($val,$key) {
    if ($key === 'score') {
        echo "score: $val" . PHP_EOL;
    }
});

结果:

score: 100
score: 80
score: 50
score: 75
score: 100
score: 80
score: 100
score: 80
,

下次只需 RTFM 并使用 var_dunp. 进行调试。

foreach($students as $outerKey => $outerValue)
{
    foreach($outerValue as $key => $value)
    {
        for($i = 0; $i<count($value); $i++)
        {
            echo $value[$i]['score'].'<br/>';
        }
    }
}

输出:

100
80
50
75
100
80
100
80
,
$students = array(
    "Beginner" => [
        "levelA" => [
            [
                "firstname" => "Pouya","lastname" => "Parsaei","phonenumber" => 9339658613,"score" => 100
            ],[
                "firstname" => "Ali","lastname" => "Soli","phonenumber" => 9179892233,"score" => 80
            ],],"levelB" => [
            [
                "firstname" => "peyman","lastname" => "tabibi","phonenumber" => 933964353,"score" => 50
            ],[
                "firstname" => "pari","lastname" => "ehsani","phonenumber" => 9175389988,"score" => 75
            ],"Intermediate" => [
        "levelD" => [
            [
                "firstname" => "Pouya","levelE" => [

            [
                "firstname" => "Pouya",);

foreach ($students as $key => $value) {
    echo $key . ': <br> <br>';
    foreach ($value as $key => $value_1) {
        echo $key . ': <br><br>';
        foreach ($value_1 as $key => $value_2) {
            $key++;
            echo 'Serial Number: ' . $key . '<br> First Name: ' . $value_2['firstname'] . '<br> Last Name: ' . $value_2['lastname'] .
                '<br> Phone Number: ' . $value_2['phonenumber'] . '<br> Score: ' . $value_2['score'] . '<br><br>';
        }
    }
}

Result Image

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。