Mar*_*k B 5 html php csv arrays file
我是PHP新手,一直在努力将CSV文件读入2D数组.我使用以下文件'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
Run Code Online (Sandbox Code Playgroud)
我希望能够:
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>";
Run Code Online (Sandbox Code Playgroud)
HTML中的结果是:
Array ( [0] => 5 [1] => Andre [2] => 69 [3] => Goalkeeper )
Run Code Online (Sandbox Code Playgroud)
这看起来很酷.然而,
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>";
Run Code Online (Sandbox Code Playgroud)
输出看起来像:
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
Run Code Online (Sandbox Code Playgroud)
这似乎是我所需要的.然而.我问自己这是否是正确的方法,因为:
list()无法使用prev()无法使用我有编程COBOL(lol)和Pascal的背景,但PHP(和Java)对我来说是全新的.任何建议都会受到欢迎!
list只是将数组值分配给变量。您可能想首先提取标题并将其与每一行组合以获得关联数组:
$teamdata = file("csv/team.csv", FILE_IGNORE_NEW_LINES);
//get and remove first line to use as keys
$headings = str_getcsv(array_shift($teamdata));
foreach ($teamdata as $playerline) {
$player = str_getcsv($playerline);
//combine keys with values
$result[] = array_combine($headings, $player);
{
Run Code Online (Sandbox Code Playgroud)
prev数组,但是数组指针已经位于第一个元素,因此没有前一个元素,并且返回false。这可以通过以下方式看到:var_dump(prev($result));| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |