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

名前をpost配列に入れます。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 に答える
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 に答える