相关疑难解决方法(0)

CSV到关联数组

我已经看过很多关于如何获取CSV文件然后创建一个以标题为关键字的关联数组的例子.

例如:

Brand,Model,Part,Test
Honda,Civic,123,244
Honda,Civic,135,434
Toyota,Supra,511,664
Run Code Online (Sandbox Code Playgroud)

它会创建一个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

其中我需要访问与该部件相关的所有信息(价格,运输,desc,脚注)

php csv arrays associative

37
推荐指数
4
解决办法
5万
查看次数

在php中从文件读取到关联数组

我有一个文件codes.txt与这样的记录

USA 0233
JPN 6789
TUN 8990
CDN 2345
Run Code Online (Sandbox Code Playgroud)

我想将这些文件内容读取到这样的关联数组中.

$codes["USA"] = 0233;
$codes["JPN"] = 6789;
$codes["TUN"] = 8990;
$codes["CDN"] = 2345;
Run Code Online (Sandbox Code Playgroud)

这是打开文件进行编写的代码.我需要数组部分的帮助.THKS

$myFile = "codes.txt";
$fh = fopen($myFile, 'r');
$theData = fread($fh, filesize($myFile));
fclose($fh)
Run Code Online (Sandbox Code Playgroud)

php

6
推荐指数
2
解决办法
1万
查看次数

将大型Excel/Csv文件拆分为PHP或Javascript上的多个文件

我有excel(file.xls)/ csv(file.csv)文件包含/将包含数十万个条目,甚至数百万我猜.是否可以将此分割为多个文件?像file.xls到file1.xls,file2.xls,file3.xls等.

有没有可以使用的库?这可能在PHP上吗?或者javascript怎么样?在哪里我可以指定每个文件中包含多少行?

谢谢

php csv excel

5
推荐指数
2
解决办法
2万
查看次数

打开并阅读2GB csv

我在打开和阅读2gb csv文件的内容时遇到了问题.每次我运行脚本都会耗尽服务器内存(10GB VPS云服务器)然后被杀死.我已经制作了一个测试脚本,并想知道是否有人可以看看并确认我没有做任何愚蠢的事情(php明智),这将导致看起来和非常大量的内存使用量.我已经和我的托管公司谈过,但他们似乎认为这是一个代码问题.所以只是想知道是否有人可以查看这个并确认代码中没有任何内容会导致此类问题.

此外,如果你处理2GB的csvs,你之前是否有类似的东西?

谢谢

蒂姆

<?php

ini_set("memory_limit", "10240M");

$start = time();
echo date("Y-m-d H:i:s", $start)."\n";

$file = 'myfile.csv';

$lines = $keys = array();
$line_count = 0;
$csv = fopen($file, "r");

if(!empty($csv))
{
    echo "file open \n";

    while(($csv_line = fgetcsv($csv, null, ',', '"')) !== false)
    {
        if($line_count==0) {
            foreach($csv_line as $item) {
                $keys[] = preg_replace("/[^a-zA-Z0-9]/", "", $item);    
            }
        } else {
            $array = array();
            for ($i = 0; $i <count($csv_line); $i++) {
                $array[$keys[$i]] =  $csv_line[$i]; 
            }
            $lines[] = (object) $array; …
Run Code Online (Sandbox Code Playgroud)

php csv

1
推荐指数
1
解决办法
808
查看次数

PHP:数组第一个值设置为其余值的键

我有下面的数组

  $a = [
    [
      0 => 'Name',
      1 => 'Address '
    ],
    [
      0 => 'Name 1',
      1 => 'Address 1'
    ],
    [
      0 => 'Name 2',
      1 => 'Address 2'
    ]
  ];
Run Code Online (Sandbox Code Playgroud)

如何将第一个元素值分配给其余的键?

所以就变成了

  $a = [
    [
      'Name' => 'Name 1',
      'Address' => 'Address 1'
    ],
    [
      'Name' => 'Name 2',
      'Address' => 'Address 2'
    ]
  ];
Run Code Online (Sandbox Code Playgroud)

所以基本上我得到了这个 Excel 文件数组并且需要上面类型的数组结果。

php arrays associative-array

1
推荐指数
1
解决办法
961
查看次数

标签 统计

php ×5

csv ×3

arrays ×2

associative ×1

associative-array ×1

excel ×1