基于标准的输出数组

时间:2012-01-26 10:42:31

标签: php arrays

我有一个多维数组。下面的代码输出一整列。

<?php       
for ( $row = 1; $row <$arrCSV; $row++ ) {
    echo ''.$arrCSV[$row]['6'].'';  
}
?>

如何将“IF”语句仅显示“$ arrCSV [$ row] ['4']中的”CAT“行

我不确定它是否是IF声明?

5 个答案:

答案 0 :(得分:1)

for ($row = 1; $row < $arrCSV; $row++) {
    if (strpos($arrCSV[$row]['4'], 'CAT') !== false) {
        echo $arrCSV[$row]['6'];
    }
}

这是你在找什么?不确定我是否理解这个问题。

你也说$row < $arrCSV但是$arrCSV是一个数组对象,而不是一个整数。您确定提供的代码是否按照您的说法运行?

答案 1 :(得分:1)

foreach ($arrCSV as $row) {
    if (strpos($row[4], 'CAT') !== false) {
        print_r($row);
    }
}

答案 2 :(得分:1)

strpos()是确定特定子字符串是否存在的最佳函数(已编辑根据以下评论):

$foundOneMatchingRow = FALSE;
foreach ($arrCSV as $row) {
  if (strpos($row['4'], 'CAT') !== FALSE) {
    $foundOneMatchingRow = TRUE;
    echo $row['6'];
  }
}
if (!$foundOneMatchingRow) {
  echo "I couldn't find a matching row!":
}

我已将for循环更改为foreach,因为对于此特定任务,它不那么令人困惑且更具可读性。

答案 3 :(得分:1)

这是代码试试这个。

$result = array();
foreach($arrCSV as $key => $value) {
  if($value['4'] == 'CAT') {          
    $result[] = $value;
  }
}
print_r($result);

答案 4 :(得分:1)

foreach(array_filter($arrCSV,function($row) { return (strpos($row[4],'CAT') !== FALSE); } ) as $row) { 
    echo ''.$row['6'].'';   
}

假设检查$ arrCSV中的所有条目