【问题标题】:PHP: var_dump output is not fullPHP:var_dump 输出未满
【发布时间】:2021-01-24 17:30:06
【问题描述】:

有php代码:

<?php
$lines = array();
$handle = @fopen("./1.csv", "r");
if ($handle) {
    while (($buffer = fgets($handle, 4096)) !== false) {
        $lines[] = $buffer;
        foreach ($lines as $line) {
                 getNo($line);
        }
    }
    fclose($handle);
}
function getNo($line) {
        $allowedSources = array(
        '_10' => 1,
        '_20' => 1,
        '_60' => 1
        );

        $providerList = explode(",",$line);
        $sourceList = array();
        foreach ($providerList as $providerInfo) {
                        $providerAndSource = explode("_",$providerInfo);
                        $provider = $providerAndSource[0];
                        $source = "_" . $providerAndSource[1];
                if ( (array_key_exists($source,$allowedSources)) )

                {
                        $sourceList[] =  $source;
                }
        }
        var_dump($sourceList);
}
?>

1.csv

1       4_10,5_20,6_60

输出是:

array(2) {
  [0]=>
  string(3) "_10"
  [1]=>
  string(3) "_20"
}

为什么没有输出“_60”?

【问题讨论】:

  • 您的代码对我有用。因此,我觉得您的示例中缺少您正在做的其他事情。尝试使用调试器单步执行您的代码,以观察值逐行变化。我还建议查看fgetcsv() 这将正确处理 csv 文件,因此您无需在逗号上爆炸。它处理引用的字符串、字段中的新行等内容。

标签: php var-dump


【解决方案1】:

我刚刚加了

trim($line);

之后

foreach ($lines as $line) {

这解决了我的问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-28
    • 2011-06-26
    • 2019-11-06
    • 2020-09-11
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多