通过简单的字数处理数组值

时间:2013-04-20 19:26:23

标签: php

是否有一种优雅的方式来处理数组值,允许使用简单的字数而不是strlen()或者使用str_word_count - > array_count_values等。

例如,我想只保留包含x个单词的数组值。

现在我正在使用。

<?php
class Functions
{
    public function processArray($array,$max,$min)
{
        foreach ($array as $value)
        {
        /* char count */
            if (strlen($value) < $max AND strlen($value) > $min) 
        /* word count */
            if (str_word_count($value,0) < $max AND str_word_count($value,0) > $min)
        {
        $array2[] = $value;
        }
    }
return $array2;
    }
}
$input = file_get_contents("files/scrape.txt");
$array = explode(".",$input);
$process = new Functions;
$output = implode(". ",$process->processArray($array,150,50));
print $output;
?>

1 个答案:

答案 0 :(得分:0)

使用callbacks来自PHP 5.4

function processArray($array,$func)
{
    $result = array();
    foreach ($array as $value)
    {
        if($func($value)){
            $result[] = $value;
        }
    }
    return $result;
}

processArray($array, function($a){
    return strlen($a) < 150 && strlen($a) > 50;
});

使用array_filter来自PHP 5.4

   array_filter($array, function($a){
        return strlen($a) < 150 && strlen($a) > 50;
   });

或(来自PHP 5

function check($a){
   return strlen($a) < 150 && strlen($a) > 50;
}

array_filter($array, 'check');