2012-01-09 4 views
-1

가능한 중복 :
PHP: Filter array길이의 단어 배열을 삭제 하시겠습니까?

나는 임의 길이의 문자열을 포함하는 PHP 배열을 가지고있다.

6 자 미만의 문자를 유지해야합니다.

어떻게하면됩니까?

해결 방법 :

$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보다 길면 요소를 삭제하거나 크기가 더 작은 경우 새 배열에 추가하십시오. –

+0

나는 이것을하기 위해 내가 알지 못하는 PHP 함수가 있기를 바라고있다. 나는 그것을 할 길이 멀다는 생각을 가지고 있지만 누군가가 그것을 더 짧게하는 방법을 알려주기를 바라고 있습니다. – David19801

+0

당신은 그것을하는 방법에 대한 아이디어가 있습니까? 그런 다음 시도한 것을 알려주십시오. –

답변

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

여기에서 & 기호는 키 값 쌍을 사용하는 특별한 방법입니까? 죄송합니다. 배열이 좋지 않습니다 ... – David19801

+0

@ David19801'& $ value'는 참조입니다 (이 스 니펫에서 무시할 수 있음). http://www.php.net/manual/en/language를 참조하십시오. reference에 대한 더 자세한 정보는 references.php를 참조하십시오. – fardjad

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

또 다른 방법 : 내가 Fardjad의 대답처럼 인이 사용

<?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; 
     } 
?> 
관련 문제