这是我的数组,我想从数组中删除最小长度为3个字符的索引
Array
(
[0] => #FCBayern
[1] => won
[2] => a
[3] => Championsleague
[4] => match
[5] => with
[6] => 2
[7] => goals
[8] => difference
)
我想这样出来
Array
(
[0] => #FCBayern
[1] => Championsleague
[2] => match
[3] => with
[4] => goals
[5] => difference
)
答案 0 :(得分:5)
foreach($array as $key => $val) {
if(strlen($val) <= 3)
unset($array[$key]);
}
以下内容将满足您的需求。
这是一个简短的解释。
true
,请从数组中删除索引。答案 1 :(得分:0)
试试这个,它会产生与你正在看的相同的输出
$array=Array ( 0 => '#FCBayern', 1 => 'won',
2 => 'a', 3 => 'Championsleague', 4 => 'match',
5 => 'with', 6 => '2', 7 => 'goals', 8 => 'difference' );
foreach($array as $newarray)
{
if(strlen($newarray)>2)
{
$myarray[]=$newarray;
}
}
echo '<pre>';
print_r($myarray);
'<pre>';
答案 2 :(得分:0)
为此类任务设计了一个函数,它比使用脚本循环稍快一些,因为它是在汇编级别处理的。
该函数被称为:array_filer()
下面是使用此方法解决问题的方法。您可以根据需要为函数命名,它只返回一个布尔值 - true
来保留该项,或false
将其删除。
$array1 = Array (
'#FCBayern',
'won',
'a',
'Championsleague',
'match',
'with',
'2',
'goals',
'difference'
);
$array1 = array_filter($array1, "myfilter");
var_export ( $array1 );
function myfilter($item) {
return (strlen($item) > 3 ? true : false);
}
答案 3 :(得分:0)
<?php
$sample = Array(0 => '#FCBayern',1 => 'won',2 => 'a',3 => 'Championsleague',4 => 'match',5 => 'with',6 => 2,7 => 'goals',8 => 'difference');
array_walk_recursive($sample,'makeProper');
$sample1 = array_filter($sample);
echo "<pre>";
print_r($sample1);
function makeProper(&$item, $key){
if(strlen($item) > 3){
$item = $item;
} else {
$item = '';
}
}
?>