如何访问PHP数组中的不同键和值
我有一个PHP数组:如何访问PHP数组中的不同键和值,php,arrays,Php,Arrays,我有一个PHP数组: Array ( [Album Title 1] => Array ( [Track Title 1] => 27 [Track Title 2] => 18 [Track Title 3] => 7 ) [Album Title 2] => Array ( [Track Title 1
Array
(
[Album Title 1] => Array
(
[Track Title 1] => 27
[Track Title 2] => 18
[Track Title 3] => 7
)
[Album Title 2] => Array
(
[Track Title 1] => 41
[Track Title 2] => 17
[Track Title 3] => 12
)
)
我如何在不使用点符号的情况下回显“专辑标题1”、“曲目标题1”及其对应的int(27)?(我不知道“专辑名称1”的确切名称)
为了获得“专辑标题1”,我尝试了:
echo $albums[0];
print_r(array_values($albums));
foreach ($albums as $a){
print_r($a) . "\n";
}
等等
我尝试了更多的变化,我需要的每一个值 这不是很好的代码,但应该可以:
$array = [
'Album Title 1' => [
'Track Title 1' => 27,
'Track Title 2' => 18,
'Track Title 3' => 7
]
];
$level1KeyName = array_keys($array)[0]; // Album Title 1
$level2KeyName = array_keys($array[$level1KeyName])[0]; // Track Title 1
$level2KeyValue = $array[$level1KeyName][$level2KeyName]; // 27
echo $level1KeyName . PHP_EOL;
echo $level2KeyName . PHP_EOL;
echo $level2KeyValue . PHP_EOL;
它打印:
专辑标题1
曲目标题1
二十七
PHP中的数组实际上是一个有序映射。映射是一种将值与键关联的类型。该类型针对多种不同用途进行了优化;可以将其视为数组、列表(向量)、哈希表(映射的实现)、字典、集合、堆栈、队列等。由于数组值可以是其他数组,所以也可以使用树和多维数组 我认为这会对您有所帮助,请注意示例6 您需要的是访问多维数组。在PHP中,访问元素不需要调用“点符号”(
album.title
或elem1.sub_elem2
)。
您可以通过元素的键访问多维数组,方法如下:
$multiarray["element1"]["sub_element2"]["sub_sub_elementX"];
话虽如此,我将在这里留下一个例子,更好地解释我想说的话
使用数据的示例:
<?php
$array = array( "Album Title 1" => array( "Track Title 1" => 27,
"Track Title 2" => 18,
"Track Title 3" => 7 ),
"Album Title 2" => array( "Track Title 1" => 41,
"Track Title 2" => 17,
"Track Title 3" => 12 )
);
echo($array["Album Title 1"]["Track Title 2"]);
//Output will be 18
echo("<br/><br/>");
foreach($array as $Album => $Track){
foreach($Track as $Title => $number){
echo("Album : ".$Album."<br/>");
echo("Track : ".$Title."<br/>");
echo("Number : ".$number."<br/>");
}
}
/* Output will be:
Album : Album Title 1
Track : Track Title 1
Number : 27
Album : Album Title 1
Track : Track Title 2
Number : 18
Album : Album Title 1
Track : Track Title 3
Number : 7
Album : Album Title 2
Track : Track Title 1
Number : 41
Album : Album Title 2
Track : Track Title 2
Number : 17
Album : Album Title 2
Track : Track Title 3
Number : 12
*/
?>
您可以在的“foreach(array_expression as$key=>$value)语句”@kerbholz facepalm中使用一个键来尝试代码。。。非常感谢。试试array_column()。你说的“点符号”是什么意思?@NicoHaase类似的东西