搜索多维数组

时间:2012-01-31 12:39:26

标签: php arrays search

我导入了一个CSV来填充多维数组。 $arrCSV

<?php     
  $foundOneMatchingRow = FALSE;
  foreach ($arrCSV as $row) {
    if (strpos($row['5'], $val) !== FALSE && strlen($row['5']) > 4) {
      $foundOneMatchingRow = TRUE;
      echo $row['6'];
    }
  }
?>

以上代码从$val = $_GET['menu'];的值输出完成后购买网址。

我想根据$row['6'];中的字词进行搜索。

将在页面上进行搜索,将搜索结果传递给网址。

这看起来像http://example.com/search.php?val=dogs

因此代码会查找与$row [6]

中的狗相关的任何内容

我希望我已经清楚了。任何gudiance都会受到欢迎。我现在正在测试一切。

谢谢

1 个答案:

答案 0 :(得分:1)

如果if (strpos($row['6'], $val) !== FALSE)包含“dog”(如果$row['6']的值为“dog”),

$val将评估为 true 。也就是说,如果$row['6']中的字符串是“bulldog”或“whateverdogwha​​tever”,则评估为 true

顺便说一句,为什么你需要这个条件:strlen($row['5']) > 4? (如果你在strlen($row['6']) > 4上搜索,我想这应该至少是$row['6']

其他:你不是在混淆字符串和整数吗?也许if (strpos($row['6'], $val) !== FALSE)应为if (strpos($row[6], $val) !== FALSE)

修改

为了便于阅读,我建议为CSV列定义常量。

例如:

define('CSV_ID', 5);
define('CSV_TEXT', 6);

//...
foreach ($arrCSV as $row) {
  if (strpos($row[CSV_TEXT], $val) !== FALSE && strlen($row[CSV_ID]) > 4) {
    //...
    echo $row[CSV_TEXT];
  }
}