试图计算数组键值包含特定值的次数?

时间:2016-04-05 17:07:21

标签: php arrays csv

$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()提供的无效参数”错误...

2 个答案:

答案 0 :(得分:0)

检查,更好$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;

答案 1 :(得分:0)

对我来说似乎$ k是一个字符串,而$ csv是你要迭代的数组。