使用explode从数组中获取数组不会改变任何内容

时间:2014-08-27 07:00:59

标签: php

我以逗号分隔列表的形式从用户那里获得输入,并使用此函数尝试从中获取数组。

public function getTags(){
    $posted = $this->input->post('le_tags');
    echo $posted .'<br/>';
    //sjhj,us9uiuo,uusooios,ooksokiod
    $new_array = explode(', ', $posted);
    //print_r($new_array);  
    foreach($new_array as $key=>$value){
    echo "i shall $value <br/>";
    //i shall sjhj,us9uiuo,uusooios,ooksokiod 
    }
    echo '<a href="javascript:history.go(-1)">go back</a>';
    }

将新数组运行到foreach后,没有任何变化。

foreach($new_array as $key=>$value){
    echo "i shall $value <br/>";
    //produces i shall sjhj,us9uiuo,uusooios,ooksokiod 
    }

我想使用foreach来生成i shall $value而不是i shall with a comma seperated list

3 个答案:

答案 0 :(得分:2)

更改

$new_array = explode(', ', $posted);

$new_array = explode(',', $posted);

答案 1 :(得分:0)

在以下行中使用','而不是', ' -

$new_array=explode(',', $posted);

答案 2 :(得分:0)

如果您在,之后不确定空格,那么您可以使用preg-split之类的,

$posted='sjhj,us9uiuo,uusooios,ooksokiod';
// or use $posted='sjhj, us9uiuo, uusooios, ooksokiod';
$new_array=preg_split('/,\s*/i',$posted);
print_r($new_array);

<强>输出

Array
(
    [0] => sjhj
    [1] => us9uiuo
    [2] => uusooios
    [3] => ooksokiod
)