2011-01-24 29 views
1

我有一个帖子数组,我只想崩溃它的一个小节。例如,我有:内爆一个数组的子部分?

'value1' => 'a' 
'value2' => 'b' 
'value3' => 'c' 
'name1' => 'Fred' 
'name2' => 'Mary' 
'name3' => 'James' 
'value4' => 'd' 

我会在其余变量中得到任意数量的名称。从这些,我想要一个连接列表的这些名称,用逗号插入。因此,对于上述阵列,输出应该是:

Fred,Mary,James 

但是对于任何给定后,有可能是任何数量的(当然,不是任何)的名字,所有形式名称#,其中是一个序列号。

这样做最简单的方法是什么?

+1

名称是否总是与模式为“name#”的键相关联,其中`#`是数字? – BoltClock 2011-01-24 19:59:00

+0

@BoltClock是的。 – user151841 2011-01-24 20:02:30

回答

2

一个简单的循环可以做的伎俩:

$names = array(); 
foreach($arr as $k => $v) { 
    if(strpos(strtolower($k), 'name') === 0) { 
     $names[] = $v; 
    } 
} 
echo implode(",", $names); 

Try it here.

0

如果名字意味着字符串超过10个字符长,这里是你可以做什么:

foreach($array as $val) 
    if(strlen($val) > 1) 
     $result[] = $val; 

echo implode(',', $result); 

如果名称是指其中键启动与名称值,这里是你可以做什么:

foreach($array as $key => $val) 
    if(substr($key,0,4) == 'name') 
     $result[] = $val; 

echo implode(',', $result); 
0

我把名字变成一阵列.. PHP处理这很好....

<input type="text" name="names[1]" value="" /> 

那么你可以通过

$_POST['names'][1] 

,并继续访问这个..

foreach($_POST['names'] as $name => $value) 
{ 
    echo $value . ", "; 
}