2024-09-07 00:12:15
巧妙运用explode()这个方法即可,根据你的需求写了段代码
$result = array();
$str = '111,aaa|222,bbb|333,ccc';
// 第一次分割字符串
$arr1 = explode('|', $str);
foreach ($arr1 as $key => $value) {
// 第二次分割字符串
$arr2 = explode(',', $value);
$result[$key]['id'] = $arr2[0];
$result[$key]['name'] = $arr2[1];
}
var_dump($result);
数组打印效果如下图
希望能帮助到你,注意采纳
2024-09-07 07:12:52
方法一:用正则
<?php
$str = '111,aaa|222,bbb|333,ccc';
$arr = array();
preg_match_all('/(\d+),(\w+)\|?/s', $str, $matches);
if(!empty($matches[1])){
foreach($matches[1] as $k => $v){
$arr[] = array(
'id' => $v,
'name' => $matches[2][$k]
);
}
}
var_dump($arr);
方法二:用explode分隔字符串
<?php
$str = '111,aaa|222,bbb|333,ccc';
$arr = array();
$a1 = explode('|', $str);
foreach($a1 as $v){
$a2 = explode(',', $v);
if(count($a2)>1){
$arr[] = array(
'id' => $a2[0],
'name' => $a2[1]
);
}
}
var_dump($arr);