2011-03-24 36 views
1
$comedy = 'comedy, drama, thriller, action'; 

$array = array('action', 'fantasy', 'war', 'comedy', 'romance', 'drama', 'thriller'); 

我需要从每个变量$comedy中找到关键字。阵列搜索问题

我需要:

3 
5 
6 
0 

谢谢!

回答

3

怎么样的代码如下部分:这给了我下面的输出

$comedy = 'comedy, drama, thriller, action'; 
$array = array('action', 'fantasy', 'war', 'comedy', 'romance', 'drama', 'thriller'); 

foreach (explode(', ', $comedy) as $word) { 
    $index = array_search($word, $array); 
    var_dump($index); 
} 

int 3 
int 5 
int 6 
int 0 


基本上是:

  • 当你的词语的$comedy变量总是以相同的模式分开,您可以使用explode()来获取包含这些单词的数组。
  • 然后,遍历这些单词,您只需拨打array_search()即可在$array阵列中获得它们的位置。
0

你可以找到(打印)各指标的你想轻松:

foreach (explode(', ', $comedy) as $keyword) { 
    echo array_find($keyword, $array); 
} 

如果你想每个关键字与指数相关联,你可以这样来做:

$words = explode(', ', $comedy); 
$indexes = array_map(
      $words, 
      function($word) use ($array) { return array_find($keyword, $array); } 
$assoc = array_combine($words, $indexes); 

print_r($assoc); 

以上要求PHP> = 5.3的匿名函数。

0

为什么喜剧只是一个字符串?

我只会制作一个喜剧数组,然后做一个循环来检查喜剧中的每个值与数组中的每个值。

1
$comedy = 'comedy, drama, thriller, action'; 

$array = array('action', 'fantasy', 'war', 'comedy', 'romance', 'drama', 'thriller'); 

$tags = explode(', ', $comedy); 

foreach ($tags as $tag) 
{ 
    echo array_search($tag, $array) . "\n"; 
} 

这应该这样做。