我想从数组中删除最小长度为3个字符的索引

时间:2014-10-07 06:00:11

标签: php arrays

这是我的数组,我想从数组中删除最小长度为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

4 个答案:

答案 0 :(得分:5)

foreach($array as $key => $val) {
    if(strlen($val) <= 3)
        unset($array[$key]);
}

以下内容将满足您的需求。

这是一个简短的解释。

  1. 使用foreach循环迭代循环。
  2. 使用条件语句检查长度是否小于或等于3.
  3. 如果条件评估为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 = '';
    }
}
?>