-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 回答