我有一个数组($ myarray),我尝试使用它的键和值输出foreach循环中的每个元素,但我不知道如何。以下数组是已解析的.ini文件的结果。这是print_r($myarray);
Array
(
[Array1] => Array ( [A] => Test [B] => 123 )
[Array2] => Array ( [C] => Test [D] => 123 )
[Array3] => Array ( [E] => Test [F] => 123 )
)
我试过这样:
foreach ($myarray as $x)
{
echo "<p>".$x." ";
foreach($x as $key => $value)
{
echo $key." = ".$value . ";";
}
echo "</p>";
}
我期待这样的事情:
Array1: A = Test; B = 123
Array2: C = Test; D = 123
Array3: E = Test; F = 123
但不幸的是我没有输出。我明显误解了一些事情。
答案 0 :(得分:4)
你的代码似乎工作得差不多只是区别在于你没有为主数组定义键/值对,所以你期望从数组中获取一个键()将返回$ x作为数组( )或输出时没有任何内容
$myarray = array(
"Array1" =>array("A" => "Test", "B" => 123),
"Array2" =>array("C" => "Test", "D" => 123),
"Array3" =>array("E" => "Test", "F" => 123)
);
foreach ($myarray as $masterkey => $mastervalue)
{
echo "<p>".$masterkey." ";
foreach($mastervalue as $key => $value)
{
echo $key." = ".$value . ";";
}
echo "</p>";
}
这是我使用的示例代码(基于你的代码)
输出
Array1 A = Test;B = 123;
Array2 C = Test;D = 123;
Array3 E = Test;F = 123;
答案 1 :(得分:2)
您的内部foreach
是正确的,因为您通过$key => $value
语法将键和值分配给变量。你需要在外循环中做同样的事情:
foreach ($myarray as $x => $y)
{
echo "<p>".$x." ";
foreach($y as $key => $value)
{
echo $key." = ".$value . ";";
}
echo "</p>";
}
答案 2 :(得分:1)
或者你可以使用:
float: left;
或者
echo '<pre>';
echo print_r($myarray, true); // this will return the output, not echo it
echo '</pre>';
或写一个递归函数:
echo '<pre>';
print_r($myarray); // this echo it, but after <pre> and before </pre>
echo '</pre>';
并回应它:
function output_myarray($myarray) {
$output = array();
foreach($myarray as $key => $value) {
if(is_array($value)) {
$output[] = output_myarray($value);
} else {
$output[] = '<p>' . $key . ' = ' . $value . ';';
}
}
return $output;
}
甚至更简单:
echo '<pre>';
echo print_r(output_myarray($myarray), true);
echo '</pre>';
或者换行:
echo implode('', output_myarray($myarray), true);