2014-03-24 43 views
0

我用preg_match_all得到了一个数组。 该数组包含4个值,每个值都是一个数字。 我只想显示具有10个或更多字符的值。 例子:计算数组中有多少个字符

Array_Value1 = 1234567890 
Array_Value2 =
Array_Value3 = 449125 
Array_Value4 = 991234581210 

我想是因为10个或更多字符组成的回声只Array_Value1和Array_Value4展现! 我该怎么办?

我试过count_charstr_len,但我看到一条消息说“数组转换为字符串”。

任何人都可以帮到我吗?

+0

什么是你的阵列结构? –

+0

循环访问阵列并执行您已经完成的操作。 – putvande

+0

你必须在使用strlen之前将其转换为字符串,请参阅我的答案! – rikpg

回答

0

尝试这个 -

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]); 
?> 

也许是更费时...嘿嘿

相关问题