我已经构建了一个php函数来打印输入到我的数组中的人的名字,但它不是打印名称,它只打印单词。 如果你能帮助我,请告诉我。
<?php
$names = array(0 => array(name =>"Becky", email => "@hotmail.com"),
1 => array(name =>"Tom", email => "@yahoo.com"),
2 => array(name => "Milduew", email => "@google.com")
);
function printInfo() {
echo "<table>";
foreach((array) $names as $name){
echo "<tr><td>" . $name[0]. "</td>";
echo "<td>" . $name[1]. "</td>";
echo "<td>" . $name[2]. "</td></tr>";
echo"</table>";
}
}
printInfo();
?>
答案 0 :(得分:1)
两个主要问题:
Scope。 $names
范围内未定义printInfo()
。
您可以将功能更改为take the array as an argument。
function printInfo($names) { ...
然后使用printInfo($names);
$names
数组中的内部数组包含字符串键,但您指的是数字键。
您需要引用$name['name']
和$name['email']
而不是$name[0]
和$name[1]
。 (顺便提一下,您的输入数组只有两列,因此无论如何都不会定义$name[2]
。)
此外,不需要将$names
转换为数组(在foreach循环中使用(array) $names
),这样做实际上可能会导致问题。如果需要确保输入是数组,可以在函数定义中声明类型。
function printInfo(array $names) { ...
答案 1 :(得分:-1)
需要使用以下内容:
$name['name'] instead of name[0]