2014-03-24 6 views
0

У меня есть массив с preg_match_all. Этот массив содержит 4 значения, а каждое значение - это число. Я хочу отображать ТОЛЬКО значение, имеющее 10 или более символов. Пример:Подсчитайте, сколько символов в массиве чисел

Array_Value1 = 1234567890 
Array_Value2 =
Array_Value3 = 449125 
Array_Value4 = 991234581210 

Я хочу, чтобы показать с эхом только Array_Value1 и Array_Value4, потому что образуются из 10 или более символов! Как я могу это сделать?

Я пробовал с 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($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]); 
?> 

Может быть, это больше времени ... хехе

Смежные вопросы