写代码:
<?php
function delete_words($text){
$str = explode(' ', $text);
foreach($str as $value){
if (mb_strlen($value)>5){
unset($str[$value]);
}
}
print_r($str);
}
$text = "один двадцать три сорок восемь пятдесят";
delete_words($text);
?>
但无论如何它都会输出所有单词,而不会删除那些长度超过 5 个字母的单词。这里出了什么问题?
替代方法是使用
array_filter这个函数是专门为任务中使用的方法设计的(而不是任务本身,因为条件的微小变化会切断这条路径):取一个抽象数组,通过函数运行它,并基于这个的结果功能(“是” - 真或“否” - 假)保留或删除元素。
循环应该这样写
(注意变量
$index)作为一个选项:
针对特定任务,调整正则表达式。以上是最简单的例子。