Home > Backend Development > PHP Tutorial > 还是个改错的有关问题-异常已经知道了

还是个改错的有关问题-异常已经知道了

WBOY
Release: 2016-06-13 13:36:28
Original
1153 people have browsed it

还是个改错的问题--错误已经知道了
就是不知道怎么改

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<?php function getCSVdata($filename)
{
    $row = 1;//第一行开始
    if(($handle = fopen($filename, "r")) !== false) 
    {
        while(($dataSrc = fgetcsv($handle)) !== false) 
        {
            $num = count($dataSrc);
            for ($c=0; $c < $num; $c++)//列 column 
            {
                if($row === 1)//第一行作为字段 
                {
                    $dataName[] = $dataSrc[$c];//字段名称
                }
                else
                {
                    foreach ($dataName as $k=>$v)
                    {
                        if($k == $c)//对应的字段
                        {
                            $data[$v] = $dataSrc[$c];
                        }
                    }
                }
            }
            if(!empty($data))
            {
                 $dataRtn[] = $data;
                 unset($data);
            }
            $row++;
        }
        fclose($handle);
        return $dataRtn;
    }
}

function print_array($data) //错误在这个函数里
{
    $row = count($data);
    $column = count($data[0]);

    echo $row;
    echo $column;

    echo "
Copy after login
"; for($i=0;$i"; for($j=0;$j"; echo $data[$i][$j]; echo ""; } echo ""; } echo "
"; } $aData = getCSVdata('test.csv'); //print_r($aData); print_array($aData); ?>


因为想从csv文件中读取相关的类似excel文件中的表信息,并且想把他们按照索引号[$i][$j]的方式加以显示。
但是问题是$j并不是真实的数据表的列的索引,因为我的文件里面,各个列的名称实际上是"工资1" "工资2" "工资3"...
类似这样的中文名。于是就显示Undefined offset: 0 in C:\inetpub\wwwroot\test\fileRead.php on line 54类似这样的错误

所以想求助这个问题怎么解决:当我预先不知道列的索引key时,怎么也能够按照索引号把他们分别取出来?
因为在实际功能中,我需要根据这个列的名称来查询数据库,并把对应的列的值插入到相应的数据库表的对应名称的列当中去,
比如$data[i]["工资1"]插入到数据表的"工资1"列中,所以必须能够将这个字符串“工资1”取出来,而且对应的这个数组元素也要单令取出来。

------解决方案--------------------
用 foreach 循环
你最好贴出 $aData,用 var_export($aData)

------解决方案--------------------
遍历数组,常用的

foreach($arr AS $k => $v) //$k 为下标,$v为值
{
 
}

或者 while list 遍历数组即可
------解决方案--------------------
foreach($data[$i] as $k=>$v) //$k就是列名
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template