如何在PHP的for循环之后添加另一行到数组中


How to add another row after a for loop into an array in PHP

大家好,我有以下内容:

for($i; $i< count($nontimedif); $i++){      
    $data[$i] = array(
      "Driver Chose Non-Compliance:" => $nontimedif[$i] . ", 
      " . $nonfirstname[$i]. ", 
      " . $nonlastname[$i]. ", 
      " . $nonemail[$i]. ", 
      " . .......
    );
}

所以在这个运行之后,我想添加一些新行,因为这比传输到。csv文件。那么我该如何在最后加上呢?

如何制作。csv文件:

function cleanData(&$str)
  {
   // escape tab characters
    $str = preg_replace("/'t/", "''t", $str);
    // escape new lines
    $str = preg_replace("/'r?'n/", "''n", $str);
    // convert 't' and 'f' to boolean values
    if($str == 't') $str = 'TRUE';
    if($str == 'f') $str = 'FALSE';
    // force certain number/date formats to be imported as strings
    if(preg_match("/^0/", $str) || preg_match("/^'+?'d{8,}$/", $str) || preg_match("/^'d{4}.'d{1,2}.'d{1,2}/", $str)) {
      $str = "'$str";
    }
    // escape fields that include double quotes
    if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
  }
// filename for download
  $filename = "website_data_" . date('Ymd') . ".xls";
  header("Content-Disposition: attachment; filename='"$filename'"");
  header("Content-Type: application/vnd.ms-excel");
  $flag = false;
  foreach($data as $row) {
    if(!$flag) {
      // display field/column names as first row
      echo implode("'t", array_keys($row)) . "'r'n";
      $flag = true;
    }
     array_walk($row, 'cleanData');
    echo implode("'t", array_values($row)) . "'r'n";
  }
$data[] = array( 'Key:' => 'Whatever you want to add');

使用array_push

$additionalRow = array( 'Whatever'.'whatever'.$somethingelse);
array_push($data, $additionalRow);

或者,你可以这样做:

$headers = array_keys($data);
$lastKey = array_pop($data);
$lastKey++;
$data[$lastKey] - $additionalRow;

祝你好运!希望这对你有所帮助!

array_push对于这种不知道key的情况是一个很好的解决方案。你可以检查一下http://php.net/manual/en/function.array-push.php