2011-11-14 28 views
0

我有一个文件,我使用PHP进行搜索。它有3行3列,并具有这些值如果存在值,则显示表格行

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

我所试图做的是只显示一行(S)含有(S)单词“约翰” 我该怎么办呢?

+0

你可以发布一些关于你的输出的PHP代码? - 您可以修剪该值并检查与“John”(区分大小写?)的相等性,还是使用“preg_match” – Smamatti

+0

这里是[link](http://pastebin.com/fHcagkP6) – HiddenChampion

回答

2
foreach($rows as $row){ 
    if(strpos('John') !== false) 
    echo $row; 
} 
+0

Could not让它工作。我的代码是[链接](http://pastebin.com/fHcagkP6)。我在哪里添加它? – HiddenChampion

+0

它现在可以工作,但它确实与此相反。它显示所有行,但包含John的行。 – HiddenChampion

+0

现在有效。非常感谢 – HiddenChampion

0

您可以使用filepreg_grep

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

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

大约有一百万的方式做到这一点

+1

这不适合我。我已经分享了下面的代码(链接) – HiddenChampion

0

我倒是explode()行和检查的第一个值:

$row_array = explode(" - ", $row); 

if ($row_array[0] == "John") { 
    // Row contains John 
} else { 
    // Row does not 
} 

既然你刮,你可以分析个人值很容易,因为它们在一个数组中。

+1

afaik strpos($ row,'John')== 0应该比爆炸更快 – Alex

+0

我知道,但由于OP是*刮*,他们将在稍后解析字符串。事先爆炸()可以节省时间。 – Blender

+0

我不明白那个逻辑 – Galen

相关问题