我是 PHP 新手,一直在努力将 CSV 文件读入二维数组。我使用以下文件“csv/team.csv”:
ID,Nickname,Shirtnumber,Position
1,Jimmy,0,RightBack
2,Mark,3,CentreBack
3,Bryan,17,LeftMidfielder
4,James,23,Striker
5,Andre,69,Goalkeeper
我希望能够:
- 显示个人的“姓名”、“球衣号码”、“职位”等
html/css 网页上的播放器。
- 使用 PHP 函数
prev()
, current()
, next()
在玩家之间导航。
- 使用关联键(除了索引键之外)。
我的第一段代码如下所示:
$teamdata = file("csv/team.csv");
foreach ($teamdata as $playerline) {
$player = explode(",", $playerline);
list($ID,$Nickname,$Shirtnumber,$Position) = $player;
{
print_r($player); echo "<br>";
print_r(prev($player)); echo "<br>";
HTML 中的结果是:
Array ( [0] => 5 [1] => Andre [2] => 69 [3] => Goalkeeper )
这看起来很酷。然而,
- 为什么
list()
不向数组添加关联键?
- 为什么
prev()
不行? (PHP 没有给出任何错误消息或警告)
通过介绍$myplayer
,我创建了一个数组$player
.
$teamdata = file("csv/team.csv");
foreach ($teamdata as $playerline) {
$player = explode(",", $playerline);
list($ID,$Nickname,$Shirtnumber,$Position) =$player;
$myplayer[]=$player;
}
print_r($player); echo "<br>"; echo "<br>";
print_r($myplayer); echo "<br>";echo "<br>";
echo $player[1]; echo "<br>";
echo $player[3]; echo "<br>"; echo "<br>";
echo $myplayer[1][1]; echo "<br>";
echo $myplayer[2][1]; echo "<br>";
输出看起来像:
Array ( [0] => 5 [1] => Andre [2] => 69 [3] => Goalkeeper )
Array ( [0] => Array ( [0] => ID [1] => Nickname [2] => Shirtnumber [3] => Position )
[1] => Array ( [0] => 1 [1] => Jimmy [2] => 0 [3] => RightBack )
[2] => Array ( [0] => 2 [1] => Mark [2] => 3 [3] => CentreBack )
[3] => Array ( [0] => 3 [1] => Bryan [2] => 17 [3] => LeftMidfielder )
[4] => Array ( [0] => 4 [1] => James [2] => 23 [3] => Striker )
[5] => Array ( [0] => 5 [1] => Andre [2] => 69 [3] => Goalkeeper ) )
Andre
Goalkeeper
Jimmy
Mark
这似乎正是我所需要的。然而。我问自己这是否是正确的方法,因为:
- 功能
list()
不能使用
- 功能
prev()
不能使用
- 选择正确“玩家属性”的编码非常“复杂”并且很容易出错
我有 COBOL(笑)和 Pascal 编程背景,但 PHP(和 Java)对我来说是全新的。欢迎任何建议!