php substr_count在一个数组上

时间:2012-02-08 18:13:05

标签: php arrays

如何使用substr_count计算数组中另一个数组中出现的每个元素?

i.e. $urls = array (
'www.thesun.co.uk',
'www.bbcnews.co.uk',
);

$names = array (
'rex kum',
'tony blair', 
);

所以,如果我想使用substr_count来计算太阳网页上rex kumi名称的出现次数,那么这将如何运作?

2 个答案:

答案 0 :(得分:1)

如果你要做很多事我会把它放在一个函数中但是:

 foreach($names as $name)
 {
       foreach($urls as $url)
      {
           print "Count for $name and $url is: " . substr_count($url, $name);
      }
 }

您提出的问题(计算另一个数组中一个数组的实例)与您实际提出的问题不同(计算网站上一个数组的实例)。您实际上想要我的答案和您在加载网站内容时提到的答案的组合。 (使用嵌套的foreach循环)

答案 1 :(得分:0)

它看起来你错过了php基础知识,但是什么是hack。你将使用函数嵌套的foreach循环:

$results = array();
foreach( $urls as $url){
    foreach( $names as $key => $name){
        if( !isset( $results[$key])){
           $results[$key] = 0; // you better initialize elements in separate foreach loop
        }

        // Strtolower because name may be capitalized, uppercased and so on
        $content = strtolower( file_get_contents( $url));
        $results[$key] += substr_count( $content, strtolower( $name));
    }
}