我有一个多维数组。下面的代码输出一整列。
<?php
for ( $row = 1; $row <$arrCSV; $row++ ) {
echo ''.$arrCSV[$row]['6'].'';
}
?>
如何将“IF”语句仅显示“$ arrCSV [$ row] ['4']中的”CAT“行
我不确定它是否是IF声明?
答案 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中的所有条目