array_push给出了逗号分隔的数组 - php

时间:2012-05-14 17:50:53

标签: php array-push

我是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
)

为什么会这样?如何使我的数组看起来像后者(不用逗号等进行任何后期处理。)

谢谢!

2 个答案:

答案 0 :(得分:1)

这是因为getSelectedOptions()为您提供逗号分隔的字符串而不是数组。我们没有这个功能所以我们不能做任何事情。现在唯一可能的是后期处理。 这是一些PHP进行后期处理。

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

答案 1 :(得分: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);
    }
}