如何解决在 PHP 中的多维数组中通过 foreach 循环回显值列表
在 PHP 中,我想通过 foreach 循环回显数组中的某些值,但我不知道如何执行此操作。 我尝试了很多方法,例如 $key => $value 和 print_r 或 echo 代码,但它们不起作用。 例如在这个数组中,我想一一回显所有 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
,
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>';
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。