当前位置: 首页 > 面试题库 >

CSV到关联数组

宦兴朝
2023-03-14
问题内容

我已经看到了许多有关如何获取CSV文件然后创建带有标题作为键的关联数组的示例。

例如:

Brand,Model,Part,Test
Honda,Civic,123,244
Honda,Civic,135,434
Toyota,Supra,511,664

它会创建一个Array,如 Array[$num][$key]这里$key将是品牌,型号,部件,测试。

因此,如果我想访问测试值“ 434”,则必须循环数组中的每个索引,然后忽略所有非本田品牌和任何非思域车型

我需要做的是最直接地访问值,而不是通过遍历每个$ num索引的for循环来运行。我希望能够通过以下方式访问值测试“ 434”:

Array['Honda']['Civic']['135']

或通过遍历所有本田车型来控制for语句……

foreach $model in Array['Honda']

至少我需要能够浏览一个已知品牌的每个模型,并访问每个模型的所有相关信息。

编辑:

只是为了确认我正在设置一个示例。我的实际数据具有以下标题:

brand model part price shipping description footnote

我需要访问其中的所有信息(价格,运费,说明,脚注)


问题答案:

逐行运行csv文件,然后插入到数组中,如下所示:

$array = $fields = array(); $i = 0;
$handle = @fopen("file.csv", "r");
if ($handle) {
    while (($row = fgetcsv($handle, 4096)) !== false) {
        if (empty($fields)) {
            $fields = $row;
            continue;
        }
        foreach ($row as $k=>$value) {
            $array[$i][$fields[$k]] = $value;
        }
        $i++;
    }
    if (!feof($handle)) {
        echo "Error: unexpected fgets() fail\n";
    }
    fclose($handle);
}


 类似资料:
  • 问题内容: 如何将JavaScript关联数组转换为JSON? 我尝试了以下方法: 问题答案: 数组应仅包含带有数字键的条目(数组也是对象,但您实际上不应混用)。 如果将数组转换为JSON,则该过程将仅考虑数值属性。其他属性只是被忽略,这就是为什么您得到一个空数组的原因。如果您看一下数组的,也许这更加明显: 通常被称为“关联数组”的实际上只是JS中的一个对象: 可以通过数组符号或点符号(如果键不是

  • SystemTap支持关联数组。关联数组就像其它编程语言中的map/dict/hash,你可以把它看作由互不相同的键所组成的数组,每个键都有一个关联的值。 关联数组需要定义为全局变量。访问关联数组的值的语法跟awk类似,就是array_name[index_expression]。 这里的array_name指关联数组的名字,index_expression指数组中某个唯一的键。比如在下面的例子中

  • 问题内容: 我正在尝试将一系列产品转换为CSV文件,但似乎没有计划。CSV文件是一长行,这是我的代码: 此外,标头不会强制下载。我一直在复制并粘贴输出并保存为.csv 编辑 解决的问题: 如果有人在寻找相同的东西,请找到更好的方法: 问题答案: 与其写出值,不如考虑使用。 这样可以立即解决您的问题。

  • 我关注了这篇文章:如何将JavaScript数组信息导出到csv(在客户端)?将嵌套js数组写入csv文件。 该数组如下所示:

  • 我想在我的项目中包含swagger,但我不能更改代码或变量名称。 我有一个返回列表的服务: 代码变量来自枚举操作可能的错误: 是否可以将“代码”和TYPE枚举相关联,以便我可以在生成的swagger文档中显示选项列表? 谢谢