1

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

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

我将在其余变量中获得任意数量的名称。从这些中,我想要这些名称的串联列表,并用逗号进行插值。所以对于上面的数组,输出应该是:

Fred,Mary,James

但是对于任何给定的帖子,可能有任意数量的名称(嗯,不是任何名称),全部采用name#的形式,其中#是一个序号。

最简单的方法是什么?

4

3 回答 3

2

一个简单的循环可以解决问题:

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

在这里试试。

于 2011-01-24T20:01:09.483 回答
0

如果名称表示长度超过 1 个字符的字符串,您可以执行以下操作:

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);
于 2011-01-24T19:59:54.893 回答
0

我会把名字放到一个帖子数组中。php很好地处理了这个......

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

然后你可以通过

$_POST['names'][1]

并继续...

foreach($_POST['names'] as $name => $value)
{
    echo $value . ", "; 
}
于 2011-01-24T20:05:37.877 回答