【问题标题】:Trying to count how many times a value of a key of an array contains a specific value?试图计算数组的键值包含特定值的次数?
【发布时间】:2016-04-05 17:07:21
【问题描述】:
$file = file('file.csv');
$counter=0;
foreach($file as $k){
  if(preg_match('/"/', $k)==1){
    $csv[] = explode(',', $k);
  }
  foreach($k as $key => $value){
    if($value == 'specific value'){
      $counter++;
    }
  }
}
// print_r($csv);
echo $counter;

$k 以逗号分隔值数组的形式正确输出;我正在尝试分析每行 $k 的逗号分隔值...得到“为 foreach() 提供的参数无效”错误...

【问题讨论】:

  • 为什么会被否决?
  • 检查,$k 是否是一个数组(is_array($k) 如果不为空,!empty($k)(与 count(arr)>0 相同)。

标签: php arrays csv


【解决方案1】:

检查,$k 是否是一个数组(is_array($k) 并且如果它不为空 !empty($k)(与 count(arr)>0 相同)。您还应该检查 CSV 文件中是否存在空行等错误,隐藏返回/标签/等。

$file = file('file.csv');
$counter=0;
foreach($file as $k){
  if(preg_match('/"/', $k)==1){
    $csv[] = explode(',', $k);
  }

  if (!is_array($k) OR empty($k)) { continue; }

  foreach($k as $key => $value){
    if($value == 'specific value'){
      $counter++;
    }
  }
}
// print_r($csv);
echo $counter;

【讨论】:

    【解决方案2】:

    在我看来 $k 是一个字符串,而 $csv 是您要迭代的数组。

    【讨论】:

      猜你喜欢
      • 2017-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-06
      • 2012-04-17
      • 1970-01-01
      相关资源
      最近更新 更多