2014-03-24 2 views
0

배열에 preg_match_all이 있습니다. 이 배열에는 4 개의 값이 들어 있고 각 값은 숫자입니다. 10 개 이상의 문자가있는 값만 표시하려고합니다. 예 :배열 번호의 문자 수를 계산하십시오.

내가 10 자 이상으로 형성하기 때문에 에코 단지 Array_Value1 및 Array_Value4로 표시 할
Array_Value1 = 1234567890 
Array_Value2 =
Array_Value3 = 449125 
Array_Value4 = 991234581210 

! 어떻게해야합니까?

나는 count_char 또는 str_len으로 시도했지만 "문자열 변환으로의 배열"이라는 메시지가 나타납니다.

누구든지 나를 도와 줄 수 있습니까?

+0

배열 구조는 무엇입니까? –

+0

배열을 반복하고 이미 수행 한 작업을 수행하십시오. – putvande

+0

strlen을 사용하기 전에 문자열로 변환해야합니다. 내 대답을 참조하십시오! – rikpg

답변

0

는 시도는 배열 내에서 모든 값을 넣어 모두의 this-

foreach($my_arr as $val) 
{ 
    if(strlen((string)$val) >=10) 
     // more than or equal to 10 
    else 
     // less than 10 
} 
1

첫째 :

$array = array(1234567890,, 449125, 991234581210); 

간단한 foreach는 사용할 수 있습니다 뒤에 :

foreach($array as $value) { 

if(strlen((string)$value) >= 10) 
echo $value; 
} 

각 에코 다음에 구분 기호를 추가해야합니다. 그렇지 않으면

와 같은 출력이 표시됩니다
1234567890991234581210 
1
foreach ($values as $value) 
{ 
    if (strlen((string)$value) >= 10) 
     echo $value; 
} 
+0

고마워요 !! :-) – GCiri

+0

답변 중 하나를 받아 들여야합니다. 그래서이 주제는 닫을 수 있습니다. 거의 모두가 동일하기 때문에 어떤 것을 표시할지 중요하지 않습니다. –

0

이 시도 :

<?php 
    $values = array(123123123, 53453453452345, 123, 9979797979797979); 
    $string = implode(',',$values); 
    preg_match_all('/(\d{10,})/', $string, $matches); 
    print_r($matches[1]); 
?> 

어쩌면 그것의 더 많은 시간이 소요 도니는 다르게 ...

관련 문제