PHP怎么分割字符串 输出二维数组

字符串: 111,aaa|222,bbb|333,ccc

怎么分隔成输出下面这种数组了? 还有111键名也改成id aaa键名改成name

array (size=3)
0 =>
array (size=2)
id => string '111' (length=3)
name => string 'aaa' (length=3)
1 =>
array (size=2)
id => string '222' (length=3)
name => string 'bbb' (length=3)
2 =>
array (size=2)
id => string '333' (length=3)
name => string 'ccc' (length=3)

巧妙运用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);

数组打印效果如下图

希望能帮助到你,注意采纳

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-04-12

方法一:用正则

<?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);

PHP怎么分割字符串 输出二维数组
巧妙运用explode()这个方法即可,根据你的需求写了段代码 result = array();$str = '111,aaa|222,bbb|333,ccc';\/\/ 第一次分割字符串$arr1 = explode('|', $str);foreach ($arr1 as $key => $value) { \/\/ 第二次分割字符串$arr2 = explode(',', $value);$result[$key]['...

php怎样数据库行循环生成二维数组并替换其中的值再生成新的二维数组
include('includes\/init.php');$sql="SELECT *,DATE_FORMAT(add_time,'%Y-%m-%d') as add_date FROM `donku_articles`";$query=$mysql->query($sql);$result=[];while($row=$mysql->fetch_assoc($query)){\/\/这里应该是关联的形式,从你的fetch_row我猜是应该是fetch_assoc $result[...

php explode分割怎么写啊?
php\/\/explode — 使用一个字符串分割另一个字符串。$text="文字,鼠标经过的文字,文字连接|文字,鼠标进过的文字,文字连接|文字,鼠标进过的文字,文字连接";\/\/分割之后的值是一个数组,是一个二维数组,下标从0开始;\/\/也就是array(0=>'文字,鼠标经过的文字,文字连接|文字,鼠标进过的文字...

php怎么把一个十个元素的数组,分成每两个元素一组的二维数组
input_array = array('a', 'b', 'c', 'd', 'e','f','g','h');dump(array_chunk($input_array, 2));输出结果 然后直接取值就行了

PHP循环输出二维数组的数据
for:for($i=0;$i<count($sss);$i++){ echo $sss[$i]['aid']."";}echo "";foreach:foreach($sss as $v){ echo $v['aid']."";}echo "";while:$i = 0;while($i<count($sss)){ echo $sss[$i]['aid'].""; $i++;} ...

php 将一维数组转换成二维数组怎么办?
a =\\x0d\\x0aArray ( '1969-12-31' =>10, '1969-12-30' => 20,'1969-12-29' => 5, \\x0d\\x0a'1969-12-28' => 6, '1969-12-27' => 30, '1969-12-26' => 70, \\x0d\\x0a'1969-12-25'=> 33);\\x0d\\x0a\/\/转换成这样的二维数组:Array ( [0] => Array (...

PHP如何输出二维数组中的某个元素?
arr=array(array(3,2),array(8,56),);var_dump($arr[1][1]);\/\/输出:56

PHP的一个数组问题
这个相当于类型的转换,把$data['first']这个字符串类型的变量转换成了数组类型,所以相当于$data['first'][0,1,2,3,4]data['first'][0] 输出wello data['first'][1] 输出hwllo data['first'][2] 输出hewlo data['first'][3] 输出helwo data['first'][4] 输出hellw ...

php一维数组怎么追加到二维数组中
代码如下:假如$leve是是一维数组,$level是二维数组,那么你只要用以下代码就可以进行追加了:level =array(3) { [0]=> array(2) { ["id"]=> int(0)["levelname"]=> string(12) "普通会员"} [1]=> array(2) { ["id"]=> string(1) "8"["levelname"]=> string(9) "小二哥...

php 根据某个字段对二维数组这个数组排序
<?php array[] = array('id'=>1,'price'=>50);array[] = array('id'=>2,'price'=>70);array[] = array('id'=>3,'price'=>30);array[] = array('id'=>4,'price'=>20);foreach ($array as $key=>$value){ id[$key] = $value['id'];price[$key] = $value['...

相似回答