繁体   English   中英

基于条件的输出数组

[英]Output Array based on Criteria

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

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

我将如何放置“ IF”语句以仅显示“ $ arrCSV [$ row] ['4']”中具有“ CAT”的行

我不确定这是否是IF语句?

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

这是你想要的? 不知道我是否理解这个问题。

您还说$row < $arrCSV但是$arrCSV是一个数组对象,而不是整数。 您确定所提供的代码可以像您所说的那样工作吗?

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

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循环更改for foreach因为对于此特定任务,它不那么混乱,而且可读性更高。

这是代码尝试此。

$result = array();
foreach($arrCSV as $key => $value) {
  if($value['4'] == 'CAT') {          
    $result[] = $value;
  }
}
print_r($result);
foreach(array_filter($arrCSV,function($row) { return (strpos($row[4],'CAT') !== FALSE); } ) as $row) { 
    echo ''.$row['6'].'';   
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM