【问题标题】:Show table row if a value is present如果存在值,则显示表格行
【发布时间】:2011-11-14 17:45:33
【问题描述】:

我有一个用 PHP 抓取的文件。它有 3 行 3 列并且有这些值

John - 35000 - OL
Adam - 4000 - AF
John - 5000 - XS

我想要做的是只显示包含单词“John”的行 我该怎么做?

【问题讨论】:

  • 你能发布一些关于你的输出的 php 代码吗? -- 您可以使用“John”(区分大小写?)修剪值并检查是否相等或使用即preg_match
  • 这里是link

标签: php tabular


【解决方案1】:
foreach($rows as $row){
  if(strpos('John') !== false)
    echo $row;
}

【讨论】:

  • 无法正常工作。我的代码是link。我在哪里添加它?
  • 它现在可以工作,但它的作用正好相反。它显示所有行,但包含 John 的行除外。
  • 在您的第二条和第三条评论之间您有什么需要改变的?
【解决方案2】:

您可以使用filepreg_grep

// Put the file into an array
$file = file( $file_contents );

// Get only the lines that have John
$john = preg_grep( '~^John~', $file );

有大约一百万种方法可以做到这一点

【讨论】:

    【解决方案3】:

    我会 explode() 该行并检查第一个值:

    $row_array = explode(" - ", $row);
    
    if ($row_array[0] == "John") {
      // Row contains John
    } else {
      // Row does not
    }
    

    由于您正在抓取,因此您可以轻松解析各个值,因为它们位于数组中。

    【讨论】:

    • afaik strpos($row, 'John') == 0 应该比爆炸更快
    • 我知道,但由于 OP 是 scraping 他们将在稍后解析字符串。事先explode()ing 可以节省以后的时间。
    • 好吧,我这样说吧。一旦 OP 发现该行包含John,接下来会发生什么?我猜 OP 会解析该行并提取各个部分。这只是我解决问题的方法,天哪。
    • 首先我对php很陌生。事实上,这是我试图开始工作的第一个 php 文件。这是整个代码。我在哪里添加您的代码?我尝试了这个和所有其他答案,但我仍然无法让它工作。 link@jaime
    猜你喜欢
    • 1970-01-01
    • 2022-12-06
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 2016-09-26
    • 1970-01-01
    相关资源
    最近更新 更多