首页 > 解决方案 > 我有一个工作数组,但我的代码无法显示多维数组的每一行

问题描述

我正在使用一个完美显示 csv 文件内容的工作函数。

function csv2array( $filename, $delimiter )
{
// read the CSV lines into a numerically indexed array
$all_lines = @file($filename);

if( !$all_lines ) 
{
    return FALSE;
}
$csv = array_map( function( &$line ) use ( $delimiter ) 
{
    return str_getcsv( $line, $delimiter );
}, $all_lines );

// use the first row's values as keys for all other rows
array_walk( $csv, function( &$a ) use ( $csv ) 
{
    $a = array_combine( $csv[0], $a );
});

array_shift( $csv ); // remove column header row

return $csv;
}

$items = csv2array( 'filetest.csv', ';' );

//print_r( $items );




echo '<pre>';
var_dump( $items );
echo '</pre>';

var_dump 输出非常完美,并显示:

  array(40) {
  [0]=>
  array(4) {
    ["Jurisdiction"]=>
    string(2) "AL"
    [" Total Distance(mi.)"]=>
    string(7) "1730.68"
    [" Off Road(mi.)"]=>
    string(4) "2.63"
    [" Toll Road(mi.)"]=>
    string(1) "0"
  }
  [1]=>
  array(4) {
    ["Jurisdiction"]=>
    string(2) "AR"
    [" Total Distance(mi.)"]=>
    string(6) "826.27"
    [" Off Road(mi.)"]=>
    string(4) "1.35"
    [" Toll Road(mi.)"]=>
    string(1) "0"
  }
  [2]=>
  array(4) {
    ["Jurisdiction"]=>
    string(2) "DE"
    [" Total Distance(mi.)"]=>
    string(5) "49.11"
    [" Off Road(mi.)"]=>
    string(4) "0.34"
    [" Toll Road(mi.)"]=>
    string(4) "6.57"
  }

我正在尝试显示那些听起来超级简单的 $rows 的值,但是我得到了空值并在互联网上搜索并且找不到正确的方法。这是我的代码:

foreach($items as $row) 
{ 
    echo $row[0]. " ".$row[1]." ".$row[2]."TESTTEST<br>";  
} 

但我只得到 TESTTEST 结果,但它显示 TESTTEST 的总次数是正确的,但值是空的,所以我错过了什么?我搜索了这个网站和其他网站,它们看起来很容易,但我的却不工作。谢谢。

标签: phparrays

解决方案


你可以做的是嵌套循环或内爆它。

嵌套:

foreach($items as $row) 
{ 
    foreach($row as $val){
        echo $val . " ";
     }
    echo "TESTTEST<br>";  
} 

或内爆:

foreach($items as $row) 
{ 
    echo implode(" ", $row);
    echo "TESTTEST<br>";  
} 

推荐阅读