在PHP多维数组中打印密钥
我有一个多维数组,我想按如下方式打印内容:在PHP多维数组中打印密钥,php,arrays,multidimensional-array,syntax,echo,Php,Arrays,Multidimensional Array,Syntax,Echo,我有一个多维数组,我想按如下方式打印内容: Sam class1: 76 class2: 62 class3: 56 class4: 60 Matt class1: 76 class2: 62 class3: 56 class4: 60 Dave class1: 76 class2: 62 class3: 56 class4: 60 Steve class1: 76 class2: 62 class3: 56 class4: 60 我的问题是我不知道如何引用第一个子数组的键(名称)key
Sam
class1: 76
class2: 62
class3: 56
class4: 60
Matt
class1: 76
class2: 62
class3: 56
class4: 60
Dave
class1: 76
class2: 62
class3: 56
class4: 60
Steve
class1: 76
class2: 62
class3: 56
class4: 60
我的问题是我不知道如何引用第一个子数组的键(名称)key($index)
只是将输出中的所有名称替换为“class1”。以下是我目前的代码:
$scoreList = array(
"Sam" => array(
"class1" => 76,
"class2" => 62,
"class3" => 56,
"class4" => 60,
),
"Matt" => array(
"class1" => 76,
"class2" => 62,
"class3" => 56,
"class4" => 60,
),
"Dave" => array(
"class1" => 76,
"class2" => 62,
"class3" => 56,
"class4" => 60,
),
"Steve" => array(
"class1" => 76,
"class2" => 62,
"class3" => 56,
"class4" => 60,
));
printGrade($scoreList["Sam"]);
printGrade($scoreList["Matt"]);
printGrade($scoreList["Dave"]);
printGrade($scoreList["Steve"]);
function printGrade($index) {
Print key($index)."<br>";
for($i = 1; $i <= 4; $i++)
{
Print "class".$i.": ".$index["class".$i]."<br>";
};
echo "<br>";
}
$scoreList=数组(
“Sam”=>数组(
“class1”=>76,
“类别2”=>62,
“类别3”=>56,
“类别4”=>60,
),
“马特”=>阵列(
“class1”=>76,
“类别2”=>62,
“类别3”=>56,
“类别4”=>60,
),
“Dave”=>数组(
“class1”=>76,
“类别2”=>62,
“类别3”=>56,
“类别4”=>60,
),
“Steve”=>数组(
“class1”=>76,
“类别2”=>62,
“类别3”=>56,
“类别4”=>60,
));
打印等级($scoreList[“Sam”]);
打印等级($scoreList[“Matt”]);
printGrade($scoreList[“Dave”]);
printGrade($scoreList[“Steve”]);
功能等级($index){
打印键($index)。“
”;
对于($i=1;$i),这可以通过递归函数调用完成:
function printGrade($scoreList) {
foreach($scoreList as $key=>$score) {
echo $key;
if(is_array($score)) {
echo "<br/>";
printGrade($score);
} else {
echo ": $score<br/>";
}
}
}
函数printGrade($scoreList){
foreach($key=>$score的分数列表){
echo$key;
if(是_数组($score)){
回声“
”;
打印等级(分数);
}否则{
echo“:$score
”;
}
}
}
试试这个:
foreach($scoreList as $key => $val)
{
echo $key."</br>";
foreach( $val as $keyItem => $valKey)
{
echo $keyItem ." : ".$valKey."</br>";
}
}
仅使用一个foreach,将所有内部数组($val
)作为键:值对,使用内爆(胶水,碎片)
哪种胶水是
新行。要打印键:值
,我使用带有回调的数组映射
fn
返回格式$k:$v
,其中$k
和$v
分别来自数组键
和数组值
foreach($key=>$val的分数列表)
{
回声$key.“”;
回波内爆(“”,阵列图(
fn($k,$v)=>“$k:$v”,
数组_键($val),
数组_值($val)
)
);
回声“”;
}
输出如您所期望的
请学习如何使用循环!@Rizier123我离得越来越近了吗…?我在帖子底部添加了一个foreach
循环,但它仍然没有达到预期的效果…为什么这么多人必须成为Aashats而不是帮助?太棒了!它工作得很好。我甚至不知道foreach
循环存在,直到五分钟前,我才告诉我们谢谢!虽然这段代码可能会解决这个问题,包括如何以及为什么解决这个问题的解释将真正有助于提高你的文章质量,并可能导致更多的投票。请记住,你是在将来为读者回答这个问题,而不仅仅是现在问问题的人。请你的回答添加解释,并说明适用的限制和假设。
foreach($scoreList as $key => $val)
{
echo $key."</br>";
foreach( $val as $keyItem => $valKey)
{
echo $keyItem ." : ".$valKey."</br>";
}
}
Sam
class1 : 76
class2 : 62
class3 : 56
class4 : 60
Matt
class1 : 76
class2 : 62
class3 : 56
class4 : 60
Dave
class1 : 76
class2 : 62
class3 : 56
class4 : 60
Steve
class1 : 76
class2 : 62
class3 : 56
class4 : 60
<<!DOCTYPE html>
<html>
<body>
<?php
$scoreList = array(
"Sam" => array(
"class 1" => 76,
"class 2" => 62,
"class 3" => 56,
"class 4" => 60,
),
"Matt" => array(
"class 1" => 76,
"class 2" => 62,
"class 3" => 56,
"class 4" => 60,
),
"Dave" => array(
"class 1" => 76,
"class 2" => 62,
"class 3" => 56,
"class 4" => 60,
),
"Steve" => array(
"class 1" => 76,
"class 2" => 62,
"class 3" => 56,
"class 4" => 60,
));
echo "Sam: ". "<br>"."<br>";
echo "class 1:  ". $scoreList ['Sam'] ['class 1']. "<br>";
echo "class 2:  ". $scoreList ['Sam'] ['class 2']. "<br>";
echo "class 3:  ". $scoreList ['Sam'] ['class 3']. "<br>";
echo "class 4:  ". $scoreList ['Sam'] ['class 4']. "<br>"."<br>";
echo "Matt: ". "<br>"."<br>";
echo "class 1:  ". $scoreList ['Matt'] ['class 1']. "<br>";
echo "class 2:  ". $scoreList ['Matt'] ['class 2']. "<br>";
echo "class 3:  ". $scoreList ['Matt'] ['class 3']. "<br>";
echo "class 4:  ". $scoreList ['Matt'] ['class 4']. "<br>"."<br>";
echo "Dav: ". "<br>"."<br>";
echo "class 1:  ". $scoreList ['Dave'] ['class 1']. "<br>";
echo "class 2:  ". $scoreList ['Dave'] ['class 2']. "<br>";
echo "class 3:  ". $scoreList ['Dave'] ['class 3']. "<br>";
echo "class 4:  ". $scoreList ['Dave'] ['class 4']. "<br>"."<br>";
echo "Steve: ". "<br>"."<br>";
echo "class 1:  ". $scoreList ['Steve'] ['class 1']. "<br>";
echo "class 2:  ". $scoreList ['Steve'] ['class 2']. "<br>";
echo "class 3:  ". $scoreList ['Steve'] ['class 3']. "<br>";
echo "class 4:  ". $scoreList ['Steve'] ['class 4']. "<br>"."<br>";
?>
</body>
</html>
Sam
class1: 76
class2: 62
class3: 56
class4: 60
Matt
class1: 76
class2: 62
class3: 56
class4: 60
Dave
class1: 76
class2: 62
class3: 56
class4: 60
Steve
class1: 76
class2: 62
class3: 56
class4: 60