是否有一种优雅的方式来处理数组值,允许使用简单的字数而不是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;
?>
答案 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');