将 csv 文件转换为 PHP 二维数组

2023-11-24

我是 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

我希望能够:

  1. 显示个人的“姓名”、“球衣号码”、“职位”等 html/css 网页上的播放器。
  2. 使用 PHP 函数prev(), current(), next()在玩家之间导航。
  3. 使用关联键(除了索引键之外)。

我的第一段代码如下所示:

    $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 )

这看起来很酷。然而,

  1. 为什么list()不向数组添加关联键?
  2. 为什么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

这似乎正是我所需要的。然而。我问自己这是否是正确的方法,因为:

  1. 功能list()不能使用
  2. 功能prev()不能使用
  3. 选择正确“玩家属性”的编码非常“复杂”并且很容易出错

我有 COBOL(笑)和 Pascal 编程背景,但 PHP(和 Java)对我来说是全新的。欢迎任何建议!


  1. 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);
{ 
  1. 你打电话prev在数组上,但是数组指针已经位于第一个元素,因此没有前一个元素,并且它返回false。这可以通过以下方式看到:var_dump(prev($result));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 csv 文件转换为 PHP 二维数组 的相关文章

  • 将文件中的数字读取到动态分配的数组中

    我需要一个从文件中读取成绩 整数 并返回存储它们的动态分配数组的函数 这是我尝试过的 int readGrades int grades int x scanf d x grades malloc x sizeof int return 0
  • 清理 CSS 抖动

    我已经构建了这些圆圈 当鼠标悬停时它们会扩展边框 我现在遇到的唯一问题是有时圆圈会抖动 摇晃 当我设置transition all 1s ease in out 超过 0 2 秒 有解决这个问题的方法吗 还是事情就是这样 这是其中的代码Js
  • 让 PHP 脚本永远循环执行队列系统中的计算作业

    目前 我有一个永远在我的服务器上运行的 perl 脚本 检查 SQS 是否有要计算的数据 该脚本已经运行了大约 6 个月 没有出现任何问题 所以 现在我想切换到 PHP 的 CLI 并让脚本永远循环在那里 主要是因为我对PHP比较熟悉 Ba
  • 在 Bootstrap 3 中将容器类嵌套在容器流体类中?

    除了填充问题之外 为什么不建议将 container 嵌套在 container fluid 中 如果将子容器填充归零 如下面我的代码所示 则效果与拥有一个容器相同 此外 如今 不同的全宽和固定宽度布局似乎很常见 我知道文档说了什么 LIN
  • React.js this.props.data.map() 不是一个函数

    我正在搞乱反应并尝试解析和渲染 json 对象 现在 我只是使用硬编码对象设置它以进行测试 而不是从 ajax 调用中获取它
  • 如何用css3和html5制作不规则形状的div?

    我想知道是否有可能构建具有不规则形状的 div 类似于此 例如格陵兰岛 欧洲 非洲 我想使用 CSS3 和 HTML5 创建像这里这样的地图 以下是示例图像的链接 你所拥有的看起来像一个网格 你可以通过一个 div 上的许多渐变来获得它 也
  • Matlab:如何显示数组的“真实”值?

    我有一个在脚本中计算的向量 计算后 我将值显示到命令窗口 显示如下 finalResults 1 0e 05 0 0001 0 0 0005 0 0002 0 0001 0 0027 0 0033 0 0001 0 0000 0 0000
  • 使图像宽度为父 div 的 100%,但不大于其自身宽度

    我试图让图像 动态放置 对尺寸没有限制 与其父 div 一样宽 但前提是该宽度不比 100 时其自身宽度宽 我已经尝试过这个 但没有成功 img width 100 height auto max width 100 其中许多图像比它们的父
  • 从 UnityWebGL jslib 返回字符串

    我想使用 jslib 来获取网址参数 像这样的代码 jslib GetUrl function var s var strUrl window location search var getSearch strUrl split var g
  • Excel VBA 将范围值复制到数组,

    我有以下代码摘录 我试图将一系列值复制到声明的数组上 但它一直给我 无法分配给数组 错误 Dim permittedCurve 0 To 7000 As Variant permittedCurve activeWorkbook Works
  • 计算数组中接下来的 n 个元素的乘积

    我想计算下一个的乘积n矩阵的相邻元素 号码n要相乘的元素数应在函数的输入中给出 例如 对于此输入 我应该从第一个开始计算每 3 个连续元素的乘积 p ind max product 1 2 2 1 3 1 3 这给出了 1 2 2 2 2
  • 如何防止显示菱形问号符号,即使使用 mb_substr 和 utf-8

    我读过其他一些问题 尝试了答案 但最终没有结果 我得到的是例如这个 我无法删除那个奇怪的问号 我所做的就是获取 RSS feed 的内容 该内容也被编码为内容使用希腊语 有没有什么办法解决这一问题 div div
  • 重复密码在 Yii2 中不起作用

    我在模型中编写的规则如下 public password repeat inheritdoc public function rules return password required password string min gt 6 p
  • 逻辑编程帮助

    A if infos 空和inputs empty 删除 B if infos空和inputs 空的 添加 C if infos 空和inputs 等于信息 添加 我们可以有这样的 if B it s the most common ope
  • 完整日历 - 向事件对象添加额外属性

    可能是由于我缺乏理解 但我使用 PHP 返回 JSON 字符串来带回事件数据
  • MySql 西班牙语字符数据

    我有一个包含西班牙语字符的数据库 为了填充数据库 我从字符编码 UTF 8 的客户端页面获取值 当我在 mySql 数据库中插入值时 行包含更改的数据 例如 如果我插入 M xico 数据库中的条目是 M xico 其影响是当我对指定 M
  • 网页执行回发时如何停止在注册表单上?

    我正在做我的最后一年的项目 其中 我在一页上有登录和注册表单 WebForm 当用户点击锚点时Sign Up下拉菜单ddlType 隐藏 和文本框 txtCustName txtEmail and txtConfirmPassword 显示
  • 单个返回语句与多个返回语句? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 url 中传递百分号 (%) 并使用 php 获取其准确值

    我正在尝试在 url 中传递百分号 例如 B6011000995504101 SB 但当我回声时 它又回来了 011000995504101 SB 我想要与在 URL 中传递的值完全相同的值 我尝试使用 urlencode 函数 但它给了我
  • 通过jquery ajax()和serialize()提交html表单

    我想通过 jquery ajax 提交此表单 这是我所做的 但它不起作用 即表单正在提交并刷新页面 但我没有看到响应 即在同一页面上打印数组 HTML

随机推荐

  • 单引号字符串字符串插值

    我正在尝试使用 Rails 在 ActionMailer 中设置电子邮件地址 在硬编码之前 但我们现在希望将它们设为 ENV 变量 这样我们就不需要每次电子邮件更改时都修改代码 目前的定义方式如下 from Name of Person l
  • cmake:读取并编译动态生成的 cpp 文件列表

    我有一个自定义工具 可以处理给定的 IDL 文件列表并生成许多 cpp 和 h 文件作为输出 我想将这些文件添加到要在我的 CMakeLists 中编译的内容列表中 并对这些文件对 IDL 的依赖关系进行建模 为了简单起见 我将声明对任何
  • 在 JSP 中启用 JavaServerPages 标准标记库 (JSTL)

    我觉得我错过了一些东西 从表面上看 JSP 开箱即用 支持标签 如这个问题的答案显示 这个人问了一个纯 jsp 问题并得到了涉及标签的答案 但是如果我尝试运行给定的代码
  • 如何在角度材料日期选择器上添加蒙版

    我最近开始使用角度材料来构建角度形式 其中我需要使用角度材料日期选择器 但无法在输入元素上添加任何掩码 我希望用户只能输入数字并在输入时将其格式化为日期格式 MM DD YYYY html div class example contain
  • 从文本文件中删除空行[重复]

    这个问题在这里已经有答案了 我有一个文本文件 其中有一些空行 意思是上面没有任何东西并且只是占用空间的线条 它看起来像这样 The quick brown fox jumped over the lazy dog 我需要它看起来像这样 Th
  • C++ 如何避免浮点运算错误[重复]

    这个问题在这里已经有答案了 我正在编写一个以浮点数递增的循环 但我遇到了以下示例所示的浮点算术问题 for float value 2 0 value lt 2 0 value 0 2 std cout lt lt value lt lt
  • 使用中央数据库在多用户环境中更新实体框架数据

    让我解释一下标题 我在应用程序中使用实体框架代码优先 测试应用程序 出于调试目的TestApp连接到 SQLExpress 数据库 中央数据库服务器 为了简单起见 数据库包含一张表 Products TestApp 在数据网格中显示数据库中
  • 创建文件时出现 System.UnauthorizedAccessException

    我试图编写代码以便记录错误消息 我试图用日期命名该文件 并希望每天创建一个新的日志文件 经过一番查看后 我得到了以下代码 class ErrorLog public void WriteErrorToFile string error ht
  • 为什么在字符指针上使用 strcat 会崩溃? [复制]

    这个问题在这里已经有答案了 为什么这段代码会崩溃 正在使用strcat字符指针非法 include
  • 更新 iframe、历史记录和 URL。然后使其与后退按钮一起使用

    当点击浏览器上的后退按钮时 我在更新 URL 时遇到问题 我正在 Firefox 上进行测试 更新我使用的 iframe 的 src 属性后replaceState更新历史记录 如果我在此之后点击后退按钮 iframe 将返回到上一页 但
  • opencart php自定义页面不使用“信息”功能

    我想在 opencart 中创建一个自定义页面 我知道我可以使用管理区域在信息部分放置一个自定义页面 但是我想要的是一个指向其他几个页面的控制器 我不完全明白如何做到这一点 在 codeigniter 中 您将创建一个控制器和一个视图 如果
  • Python:更改 Windows 7 主音量

    我希望能够在 Python 中控制主音量 不是针对应用程序 而是针对当前活动扬声器 这似乎是一个棘手的话题 我尝试用 C 来做 但我什至无法让它在那里工作 有办法做到这一点吗 Windows 7 x64 请注意 这个问题之前没有得到回答 因
  • Camera2 API 自动对焦与三星 S5

    我正在 Samsung S5 上使用新的 Camera2 API 该设备报告的支持的硬件级别是LEGACY 这很好 但是 我似乎无法自动对焦该设备 触发自动对焦的请求如下所示 previewRequestBuilder set Captur
  • 拒绝使用ajax调用Rest服务器设置不安全标头“Cookie”

    我正忙于构建一个与我的 Drupal Rest 服务器 模块 服务 连接的 Phonegap 应用程序 我的 Drupal 网站 PHP 的代码为 header Access Control Allow Origin 当我尝试使用以下代码连
  • cxf + wss4j + maven NoSuchMethod 错误

    尝试使用maven使用cxf wss4j 创建服务和客户端 没有任何编译问题 该服务在tomcat中运行良好 Issue 当我运行客户端代码时 我得到 java lang NoSuchMethodError org apache xml s
  • Apache Oltu Linkedin 集成示例

    我期待着开发Spring MVC Apache Oltu Linkedin集成示例 在此示例中 您需要发送客户端 ID 和客户端密钥才能从链接站点访问私有资源 第一步 我们需要在 Linkedin 中创建应用程序 请按照以下步骤操作 htt
  • laravel“解析错误:语法错误,意外的'const'(T_CONST),期望变量(T_VARIABLE)”

    我将我的 laravel 项目从本地移动到共享主机 但 laravel 给出了这个错误 Parse error syntax error unexpected const T CONST expecting variable T VARIA
  • 如何在 Laravel 4 中创建自定义 Facade

    查找了一些关于 Facades 和 Laravel 4 的教程 尝试了一些 不喜欢它们的工作方式 例如 它们并不都提供一种定义在哪里存储外观文件和服务提供者的方法 我试图摆脱这一点 但我的头撞到了几堵墙 直到我决定做这个线程 所以 假设我有
  • WinSCP .NET 程序集:在哪里定义代理?

    我可以使用 WinSCP GUI 定义代理服务器 如果我这样做 我就可以连接到远程主机 但在代码中我没有找到为 WinSCP 声明代理服务器的方法 在这种情况下我收到 远程服务器返回错误 407 需要代理身份验证 My code Sessi
  • 将 csv 文件转换为 PHP 二维数组

    我是 PHP 新手 一直在努力将 CSV 文件读入二维数组 我使用以下文件 csv team csv ID Nickname Shirtnumber Position 1 Jimmy 0 RightBack 2 Mark 3 CentreB