strpos不从数组数据中搜索字符串

时间:2015-02-20 17:22:27

标签: php

想从这个声明中得到一个我能在任何地方回应的输出变量。它需要检查$ PageTitle的值,然后将正确的值输出到变量中:

//页面信息

$PageTitle = "audio";

//Body header menu
$search_for = array('Electrical Service' => 'electrical, electrician, security, audio, video', 'Plumbing Service' => 'heating, gas', 'water' => 'water');

foreach ($search_for as $name=>$term){
 if (strpos($PageTitle,$term) !== false){
  echo $name;
  // add break; here if you want to display only one (first) found
 }
}

//need to echo result anywhere on page
echo $name;

FIDDLE:http://codepad.viper-7.com/FAelDG

输出" water"而不是"电气服务"

BigScar以非常漂亮和优雅的方式回答。

how to get search results from string to echo variable

2 个答案:

答案 0 :(得分:3)

你有strpos()的论据错误的方法。它应该是:

if (strpos($term,$PageTitle) !== false){

看一下功能签名:haystack,needle,not needle,haystack

  

混合strpos(字符串$ haystack,混合$ needle [,int $ offset = 0])

Updated demo - 输出Electrical Service

答案 1 :(得分:3)

您使用了strpos()错误。如果您查看手册:http://php.net/manual/en/function.strpos.php

从那里引用:

  

混合strpos(字符串 $ haystack ,混合 $ needle [,int $ offset = 0])

所以你必须改变你的论点的顺序,例如:

if (strpos($term, $PageTitle) !== false){
         //^^^^^^^^^^^^^^^^^ Changed