2016-02-12 64 views
0

我目前有问题,通过JSON文件搜索,我搜索和显示基于搜索词院系,但它只显示值当我的全名类型,我怎样才能寻找到工作,如果我只喜欢类型前几个字符并以名称开头显示结果。如何在PHP中通过关键字搜索Json?

这里是我的代码:

<?php 
if(isset($_GET['search_word'])) 
{ 
$search_word=$_GET['search_word']; 
$string = file_get_contents("faculty_info.json"); 
$jfo = json_decode($string); 
// copy the posts array to a php var 
$posts = $jfo->faculty_info; 
// listing posts 
foreach ($posts as $post) { 
    if($post->name == "$search_word"){ 
    echo $post->name; 
    echo "<br>"; 
    echo $post->division; 
    echo "<br>"; 
    echo $post->school; 
    echo "<br>"; 
    echo $post->designation; 
    echo "<br>"; 
    echo $post->email; 
    echo "<br>"; 
    echo $post->room; 
    echo "<br>"; 
    echo "<br>"; 
    } 
} 
} 
?> 
+1

你没有JSON。你已经解码了,现在有一个普通的旧php数据结构。你会像在任何OTHER php数据结构中那样搜索那个结构。 –

+0

你能提一下有什么不对吗?我该如何改进你所说的话? –

+0

你不得不解释这个'$ search_word'是什么,以及在这些领域有什么。因为现在你正在做一个精确的字符串匹配,所以搜索字母'r'并不是为了匹配'Doctor',因为'r!= Doctor'。 –

回答

0

试试这个

$post->name = 'How are you?'; 
$search_word = "How"; 

$pos = strpos($post->name, $search_word); 

if ($pos !== false && $pos == 0) { 
    echo 'found'; 
    //do your script 
} 
+0

我认为这将仅适用于精确的字符串匹配工作。 –

+0

查看我的更新回答。不知道你是否在寻找这种情况。 – Babitha