PHP基于2分隔符单独编号

时间:2018-05-25 08:53:37

标签: php

PHP使用基于2分隔符的单独数字

我有这个变量$ sid

$sid        =   isset($_POST['sid']) ? $_POST['sid'] : '';

它的输出是:

Array
(
    [0] => 4|1
    [1] => 5|2,3
)

现在我想将1,2,3作为值,以便我可以根据此编号作为ID运行查询。

我该怎么做?

3 个答案:

答案 0 :(得分:1)

使用explode()

$arr = array(
0 => "4|1",
    1=> "5|2,3"
);

$output = array();
foreach($arr as $a){
    $right = explode("|",$a);
    $rightPart = explode(",",$right[1]);
    foreach($rightPart as $rp){
      array_push($output,$rp);
    }
}

var_dump($output);

答案 1 :(得分:1)

使用foreach循环播放数组。您可以explode将每个字符串转换为数组。仅使用数组的第二个元素进行合并

$sid = array('4|1','5|2,3');

$result = array();
foreach( $sid as $val ) {
    $val = explode('|', $val, 2);
    $result = array_merge( $result, explode(',', $val[1]) );
}

echo "<pre>";
print_r( $result );
echo "</pre>";

您也可以使用array_reduce

$sid = array('4|1','5|2,3');

$result = array_reduce($sid, function($c, $v){
    $v = explode('|', $v, 2);
    return array_merge($c, explode(',', $v[1]));
}, array());

这将导致:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)

答案 2 :(得分:0)

你可以用循环爆炸来完成它。

foreach($sid as $a){
    $data = explode("|", $a)[1];

    foreach(explode(",", $data) as $your_id){
        //do you stuff with your id, for example
        echo $your_id . '<br/>';

    }
}