2011-05-03 68 views
1

我如何使用(str_word_count($str, 1));因为Hello [1] => World [2] => This [3] => Is [4] => a [5] => Test) 6只输出我定义的数字,例如[1]和[2]以省略这是一个只留下Hello World的测试,或者[1]和[6]你好测试...只有打印定义的str_word_count匹配?

回答

3

你可以做到这一点与array_intersectstr_word_countexplode

$input = 'Hello World This Is a Test'; 
$allow = array('Hello', 'Test'); 

$data = explode(' ', $input); 
// or your way 
$data = str_word_count($input, 1); 


$output = array_intersect($data, $allow); 
$count = count($output); 

echo 'Found ' + $count; 

var_dump($output); 
+0

啊!我看到,我看到 – 2011-05-03 15:49:22

+0

@ HSZ IDK允许的词将永远是什么,它是一个假词的密码..所以我希望能够为每个词定义一个数字作为它的计数,然后打印这些词我需要进一步解码密码...所以JACK 1 JILL 2 BOB 3 HARRY 4 SECRET 5 SALLY 6 SUE 7 CODE 8 TOM 9 ...我会打印5和8的匹配或字数标识.. – 2011-05-03 15:56:24

+0

你的意思是你只是想通过它们的索引来获得数组的元素? 'echo $ data [4] +''+ $ data [7];'? – hsz 2011-05-03 16:00:42

0

PHP 5.3的解决方案

$input = 'Hello World This Is a Test'; 
$allow = array('Hello', 'World'); 

$array = array_filter(
    str_word_count($input, 1), 
    function($v) use($allow) { 
     return in_array($v, $allow) ? $v : false; 
    } 
); 

print_r($array);