【问题标题】:PHP changing the index of multidimentional array to value of variablePHP将多维数组的索引更改为变量的值
【发布时间】:2017-06-09 07:22:30
【问题描述】:

PHP 新手。我有一个 csv 提要,我试图在正确的位置显示每一行。提要被加载到一个多维数组中,我可以像这样回显特定的位置。

echo $readcsv[0][2]

但我在执行 while 循环时尝试使用变量 $row 的值而不是第一个数字。

类似:

echo $readcsv[$row][2]

我已经尝试过 next()、str_replace() 和 strtr(),但在循环运行时它们似乎都不起作用。

$row = 1;
$readcsv = array(); 

if (($handle = fopen("file.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
        $num = count($data);

        echo $readcsv[$row][2];

        $row++;
        for ($c=0; $c < $num; $c++) {
        }
        $mycsvfile[] = $data; 
    }
    fclose($handle);
}

CSV 文件:

title;image_link;link;empty;price;
1;back.gif;http://link.com;;19.95;
2;back.gif;http://link.com;;19.95;
3;back.gif;http://link.com;;19.95;
4;back.gif;http://link.com;;19.95;
5;back.gif;http://link.com;;19.95;

【问题讨论】:

  • 你能分享你的 csv 文件吗?
  • 请解释您想要实现什么,因为您正在读取 $readcsv 数组和 $readcsv[ $row ] 的第三个键,它们是空的。打开错误报告,因为代码会抛出一些错误
  • 是不是像数组以索引0开头一样简单
  • 或者您正在尝试从 $readcsv 回显一个在您创建该索引之前实际上并不存在的值
  • 或者事实上 $readcsv 永远不会加载任何内容,因为在创建该数组后您永远不会向其中添加任何内容

标签: php arrays variables multidimensional-array


【解决方案1】:

我不太确定您的代码,并确切地质疑您要做什么,但可能是这样的

if (($handle = fopen("file.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {

        // you load the line into $data and its a one dimentional array
        // occurance 2 is the `link` (http://link.com) if that what you want to echo
        echo $data[2];

        // as you have a loop, maybe you were trying to
        // echo each fields from the csv so you can do that like this
        foreach ($data as $idx => $value) {

            echo "Column $idx = $value";
        }
        $mycsvfile[] = $data;
    }
    fclose($handle);
}

【讨论】:

    猜你喜欢
    • 2016-03-19
    • 2012-07-20
    • 2013-05-25
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-31
    • 1970-01-01
    相关资源
    最近更新 更多