-1

私は PHP を初めて使用し、Java のバックグラウンドを持っています。だからここに行く:

私はこのコードを持っています:

$selected = array();
foreach($this->getSelectedOptions() AS $array) {
   array_push($selected, $array['value']);
}
var_dump($selected);

getSelectedOptions() は、文字列を含む配列の配列を取得します。

結果は

array
  0 => string 'abc, def' (length=31)

私は次のようなものを期待していました:

Array
(
    [0] => abc
    [1] => def
)

なぜこうなった?配列を後者のように見せるにはどうすればよいですか (コンマなどで後処理を行わずに)

ありがとう!

4

2 に答える 2

1

これは、getSelectedOptions() が配列ではなくコンマ区切りの文字列を提供するためです。私たちはその機能を持っていないので、それで何もできません。今できることは後処理だけです。これは、後処理を行う PHP です。

$selected = array();
foreach($this->getSelectedOptions() AS $array) {
   $values = explode(', ', $array['value']);
   array_push($selected, $values);
}
var_dump($selected);
于 2012-05-14T17:57:32.830 に答える
0

コンマ区切りの値を分割し、以下のように再度ループする必要があります。

$selected = array();
foreach($this->getSelectedOptions() AS $array) {
    //$array now contains comma seperated values
    //split and loop
    $values = explode(',',$array['value']);
    foreach($values as $value) {
        array_push($selected, $value);
    }
}
于 2012-05-14T17:54:32.467 に答える