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


Trying to count how many times a value of a key of an array contains a specific value?

$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相同(。此外,您应该检查您的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;
在我看来

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