1

私はこの配列をdbから返しました

Array ( [0] => Array ( [id] => 3 [test] => alphy,poxy,jade,auma ) ) 

次に、値を分離するために爆発を使用しました

$options = explode(",", $test1['0']['test']);

結果は

 array(4) { [0]=> string(5) "alphy" [1]=> string(4) "poxy" [2]=> string(4) "jade" [3]=> string(4) "auma" }

次に、値の数を数えます

$count= substr_count($test1['0']['test'], ",")+1;

次に、テキストエリア1 - alphy、textarea2 - poxyなど、カウントと値に基づいてテキストエリアを動的に作成しようとします...

  for($i=0; $i<=$count;$i++){?>
            <textarea ><?php echo $options[$i]['test']?> </textarea>
    <?php }?>

上記は行っていません。代わりに、各テキストエリアには、 a、p、j、a などの最初の文字だけがあり、 alphy 、 poxy 、 juma 、 auma ではありません。

私は何が欠けていますか?

4

1 に答える 1

2

$options 配列を反復してテキストエリアを出力するだけです。カウントを取得する必要はありません。

$test1 = array(array('id' => 3, 'test' => 'alphy,poxy,jade,auma')); 
$options = explode(",", $test1['0']['test']);
foreach ($options as $i => $option) {
    echo '<textarea name="textarea_' . $i . '">' . $option . '</textarea>';
}

もちろん、本当にカウントを使用したい場合は、次のようにすることができます。

$test1 = array(array('id' => 3, 'test' => 'alphy,poxy,jade,auma')); 
$options = explode(",", $test1['0']['test']);
$count = count($options);
for ($i = 0; $i < $count; $i++) {
    echo '<textarea name="textarea_' . $i . '">' . $options[$i] . '</textarea>';
}

編集:質問の編集を考えると、各オプションのインデックス (「テスト」) にアクセスしようとしているようです。しかし、配列に分割されると単純な文字列になるため、配列のようにアクセスする必要はありません。

最初の文字を取得する理由は、 が に$x = 'alpha'; $x['test']評価され$x[0]、文字列の最初の文字、つまり . にアクセスするためaです。

于 2013-06-30T11:28:04.283 に答える