PHP使用基于2分隔符的单独数字
我有这个变量$ sid
$sid = isset($_POST['sid']) ? $_POST['sid'] : '';
它的输出是:
Array
(
[0] => 4|1
[1] => 5|2,3
)
现在我想将1,2,3作为值,以便我可以根据此编号作为ID运行查询。
我该怎么做?
答案 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/>';
}
}