我有这个数组输出:
Array
(
[0] => de la que fue colaborador Sicard, fue realizado ya en 1795 en la Décade philosophique y en el Magasin encyclopedique, y su aparición dos años después
[1] => de la obligación de tener presentes incesantemente estas combinaciones {44}. Tienen un carácter más estable que las ideas, pero son también
[2] => de la época X de su Esquisse dun tableau historique del progrès de lesprit humain, pero no apareció en ninguna de las versiones publicadas
[3] => de la Asociación de bibliotecarios americanos, es una
}
你能帮我删除超过100个或10个单词的所有元素吗?
这是我的代码。
不幸的是,当我使用变量时,专家提供的代码不起作用:
<?php
function tag_contents($string, $tag_open, $tag_close){
foreach (explode($tag_open, $string) as $key => $value) {
if(strpos($value, $tag_close) !== FALSE){
$result[] = substr($value, 0, strpos($value, $tag_close));;
}
}
return $result;
}
$string = 'de la que fue colaborador Sicard, fue realizado ya en 1795 en la Décade philosophique y en el Magasin encyclopedique, y su aparición dos años después de la obligación de tener presentes incesantemente estas combinaciones {44}. Tienen un carácter más estable que las ideas, pero son también de la época X de su Esquisse dun tableau historique del progrès de en el lesprit humain, pero no apareció en ninguna de las versiones publicadas de la Asociación de bibliotecarios americanos, en el';
$strpos = 'de la' ;
$tagclose = 'en el';
echo "<pre>";
print_r(tag_contents($string , $strpos , $tagclose));
echo "</pre>";
?>
这些字符串太短,但我想知道如何删除超过&#39; X&#39;字符或&#39; X&#39;字?
答案 0 :(得分:1)
只需遍历数组并检查长度和单词的条件,并根据它取消设置数组元素
$arr = Array
(
0 => 'de la que fue colaborador Sicard, fue realizado ya en 1795 en la Décade philosophique y en el Magasin encyclopedique, y su aparición dos años después',
1 => 'de la obligación de tener presentes incesantemente estas combinaciones {44}. Tienen un carácter más estable que las ideas, pero son también',
2 => 'de la época X de su Esquisse dun tableau historique del progrès de lesprit humain, pero no apareció en ninguna de las versiones publicadas',
3 => 'de la Asociación de bibliotecarios americanos, es una'
);
foreach($arr as $key=>$value)
{
if(strlen($value)>100 || str_word_count($value) > 10)
{
unset($arr[$key]);
}
}
var_dump($arr);
答案 1 :(得分:1)
$tmp = [
'de la que fue colaborador Sicard, fue realizado ya en 1795 en la Décade philosophique y en el Magasin encyclopedique, y su aparición dos años después',
'de la obligación de tener presentes incesantemente estas combinaciones {44}. Tienen un carácter más estable que las ideas, pero son también',
'de la época X de su Esquisse dun tableau historique del progrès de lesprit humain, pero no apareció en ninguna de las versiones publicadas',
'de la Asociación de bibliotecarios americanos, es una'
];
$tmp = array_filter($tmp, function($currentElement) {
return strlen($currentElement) <= 100 && str_word_count($currentElement) <= 10;
});
答案 2 :(得分:0)
请尝试以下代码:
foreach($yourArray as $key=>$value) {
if(strlen($value)>100 || str_word_count($value)>10) {
unset($yourArray['key']);
}
}
echo '<pre>';
print_r($yourArray);