PHP二维数组转一维数组

PHP二维数组转一维数组,array(size=6)'oneid'=>array(size=2)0=>string'4'1=>string'5''id'=>array(s... PHP二维数组转一维数组,array (size=6)
'oneid' =>
array (size=2)
0 => string '4'
1 => string '5'
'id' =>
array (size=2)
0 => string '4'
1 => string '5'
'Rname' =>
array (size=2)
0 => string '商人'
1 => string 'VIP'
'R0' =>
array (size=2)
0 => string '30000'
1 => string '100001'
'R1' =>
array (size=2)
0 => string '100000'
1 => string '5000000'
'chkall' => string 'on'

将上面的二维数组转为类似下面的多个一维数据
array (size=5)
'oneid' => string '5'
'id' => string '5' (length=1)
'Rname' => string 'VIP'
'R0' => string '100001'
'R1' => string '5000000'

array (size=5)
'oneid' => string '4'
'id' => string '4'
'Rname' => string '商人'
'R0' => string '30000'
'R1' => string '100000'
展开
 我来答
阳光上的桥
2014-04-12 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21424 获赞数:65806
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
其实这是一个数组转置算法,是很常用的算法,例子程序代码如下:

<?php
$arr=array(
'oneid' => array ('4','5'),
'id' => array ('4','5'),
'Rname' => array ('商人' ,'VIP' ),
'R0' => array ('30000' ,'100001' ),
'R1' => array ('100000' ,'5000000' ),
'chkall' => 'on');
echo "原始数组:\n";
print_r($arr);

$arr2=array();
foreach ($arr as $k=>$v) {
if (is_array($v)) {
foreach ($v as $k2=>$v2) $arr2[$k2][$k]=$v2;
}
}
echo "转换后的数组:\n";
print_r($arr2);
?>

以上程序的运行结果为:
原始数组:
Array
(
[oneid] => Array
(
[0] => 4
[1] => 5
)

[id] => Array
(
[0] => 4
[1] => 5
)

[Rname] => Array
(
[0] => 商人
[1] => VIP
)

[R0] => Array
(
[0] => 30000
[1] => 100001
)

[R1] => Array
(
[0] => 100000
[1] => 5000000
)

[chkall] => on
)
转换后的数组:
Array
(
[0] => Array
(
[oneid] => 4
[id] => 4
[Rname] => 商人
[R0] => 30000
[R1] => 100000
)

[1] => Array
(
[oneid] => 5
[id] => 5
[Rname] => VIP
[R0] => 100001
[R1] => 5000000
)

)
骑王子特斯拉
2015-12-25 · 知道合伙人软件行家
骑王子特斯拉
知道合伙人软件行家
采纳数:360 获赞数:2021
某度最佳知道合伙人

向TA提问 私信TA
展开全部

PHP二维数组转为一维数组的方法实例,分别使用foreach、for、while三种循环方法,还可以使用PHP自带的array_column()函数;

具体示例:

二维数组

$msg = array(
  array(
    'id'=>'45',
    'name'=>'jack'
  ),
  array(
    'id'=>'34',
    'name'=>'mary'
  ),
  array(
    'id'=>'78',
    'name'=>'lili'
  ),
);

第一种方法:

foreach($msg as $k => $v){
    $ids[] = $id;
    $names[] = $name;
  }
  
  

第二种方法:

<?php
 $ids = array_column($msg, 'id');
 $names = array_column($msg, 'name');
?>

注意:array_column();可以有第三个参数,如 $n = array_column($msg, 'name', 'id');

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式