Php 内爆数组的一个子段?

Php 内爆数组的一个子段?,php,arrays,implode,Php,Arrays,Implode,我有一个post数组,我只想内爆它的一部分。例如,我有: 'value1' => 'a' 'value2' => 'b' 'value3' => 'c' 'name1' => 'Fred' 'name2' => 'Mary' 'name3' => 'James' 'value4' => 'd' 我将在其余变量中获得任意数量的名称。从中,我想要一个这些名字的串联列表,用逗号插入。因此,对于上述阵列,输出应为: Fred,Mary,James 但对于任何

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

'value1' => 'a'
'value2' => 'b'
'value3' => 'c'
'name1' => 'Fred'
'name2' => 'Mary'
'name3' => 'James'
'value4' => 'd'
我将在其余变量中获得任意数量的名称。从中,我想要一个这些名字的串联列表,用逗号插入。因此,对于上述阵列,输出应为:

Fred,Mary,James
但对于任何给定的帖子,都可能有任意数量的名字(好吧,不是任何),所有的名字都以name#的形式出现,其中#是一个序列号


最简单的方法是什么?

如果名称表示长度超过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);

如果名称表示键以名称开头的值,则可以执行以下操作:

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

一个简单的循环就可以做到这一点:

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

我会把名字放到一个post数组中。。php处理得非常好

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

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

名称是否总是与模式为
“name”
的键相关联,其中
是一个数字?很好,但我会用。。。哦,你知道。这是正确的,但最后一行应该是类似于
内爆($names,,')
@BoltClock,@user151841-Happy now:实际上,
foreach
中的
$arr
应该是$\u POST(我们应该做验证:),而
$e
应该是
$v
?@Karim不是
打印(内爆(…)
有点多余?)