2012-01-09 63 views
-1

可能重複:
PHP: Filter array字的數組刪除的長度?

我有一個包含隨機長度的串的PHP數組。

我想要保留長度小於6個字符的文件。

我該怎麼做?

解決方案:我用這個這就好比Fardjad的回答是:

$counter=0; 
foreach ($myarray as $value) { 
    if (strlen($value) >=$maxlength) { 
unset($myarray[$counter]); 
    } 
$counter++; 
} 
+8

[你嘗試過什麼?](HTTP:// whathaveyoutried .com /)你看過[PHP數組函數參考](http://php.net/manual/en/ref.array.php)嗎?直截了當的想法:迭代數組,測試字符串的長度,如果長度大於6,則刪除該元素,或者如果它較小,則將其添加到新數組中。 – 2012-01-09 16:40:40

+0

我希望有一個PHP函數,我不知道要做到這一點。我有一個很長的想法做到這一點,但我希望有人會告訴方法做得更短。 – David19801 2012-01-09 16:43:04

+0

你有一個想法如何做到這一點?然後告訴我們你試過了什麼。 – 2012-01-09 16:43:34

回答

5
foreach ($yourArray as $key=>&$value) { 
    if (strlen($value) > 6) { 
     unset($yourArray[$key]); 
    } 
} 
+0

&是否在這裏使用鍵值對的特殊方式?對不起,我對陣列不太好... – David19801 2012-01-09 16:48:08

+0

@ David19801'&$ value'是一個參考(你可以在這個片段中忽略它),見http://www.php.net/manual/en/language。有關引用的更多信息,請參考references.php。 – fardjad 2012-01-09 16:55:06

9
<?php 
$array_with_random_strings = <Your array here>; 

function less_than_six($word) { 
    return strlen($word) < 6; 
} 

$your_desired_array = array_filter($array_with_random_strings, "less_than_six"); 
?> 
0

另一種方式:

<?php 
    $random = array('1234','12345','123456','1234657'); 
    for($i=0, $j=0 ; $i<count($random) ; $i++) 
     if(strlen($random[$i])<6){ 
      $lessthan6[$j] = $random[$i]; 
      $j = $j+1; 
     } 
?>