php二维数组重新排序

Array ( Array ('id' => 3, 'username' => 'alex ','parentname'=> 'john'  
       ,'proname' => 'tttt' 'num'=> 1 ,  'userid' =>6 ,'parentid'=>8 ,
   'cpid'=>  0 ,'mobile'=> 15533336666 ,'parentmobile' => 156477765465) );


 把最后两个分别放在第2个和第4个位置 ,怎么重新排序?
Array ( Array ('id' => 3, 'username' => 'alex ','mobile'=> 15533336666 
      ,'parentname'=> 'john' ,'parentmobile' => 156477765465   ,'proname' => 'tttt' 'num'=> 1 , 
  'userid' =>6 ,'parentid'=>8 ,'cpid'=>  0  );

 

1、从数据库里取出时,不要简单的 select *
  而是 select id, username, mobile .... 这样一一开列,你要求的排列顺序不就有了
2、用 php 代码也是可以的

$a = Array ( Array ('id' => 3, 'username' => 'alex ','parentname'=> 'john'  
       ,'proname' => 'tttt', 'num'=> 1 ,  'userid' =>6 ,'parentid'=>8 ,
   'cpid'=>  0 ,'mobile'=> 15533336666 ,'parentmobile' => 156477765465) );

$k = Array ('id', 'username', 'mobile', 'parentname', 'parentmobile', 'proname', 'num', 'userid', 'parentid', 'cpid');

foreach($a as $i=>$v) {
  extract($v);//该函数使用数组键名作为变量名,使用数组键值作为变量值。将数组$a的所有元素转成变量。
  
  $b[$i] = compact($k);//函数创建一个包含变量名和它们的值的数组。
}
print_r($b);

 

Array
(
    [0] => Array
        (
            [id] => 3
            [username] => alex 
            [mobile] => 15533336666
            [parentname] => john
            [parentmobile] => 156477765465
            [proname] => tttt
            [num] => 1
            [userid] => 6
            [parentid] => 8
            [cpid] => 0
        )
 
)

 

 也可以可以这样写:

$arr = array(
    array('id'=>3,'username'=>'alex','parentname'=>'john','proname'=>'tttt','num'=> 1 ,  'userid' =>6 ,'parentid'=>8 ,'cpid'=>  0 ,'mobile'=> 15533336666 ,'parentmobile' => 156477765465),
    array('id'=>3,'username'=>'alex','parentname'=>'john','proname'=>'tttt','num'=> 1 ,  'userid' =>6 ,'parentid'=>8 ,'cpid'=>  0 ,'mobile'=> 15533336666 ,'parentmobile' => 156477765465),
    array('id'=>3,'username'=>'alex','parentname'=>'john','proname'=>'tttt','num'=> 1 ,  'userid' =>6 ,'parentid'=>8 ,'cpid'=>  0 ,'mobile'=> 15533336666 ,'parentmobile' => 156477765465),
);
 
$result = array();
$fields = array('id','username','mobile','parentname','parentmobile','proname','num','userid','parentid','cpid');
foreach($arr as $k=>$v){
    $tmp = array();
    foreach($fields as $f){
        $tmp[$f] = $v[$f];
    }
    $result[] = $tmp;
}
 
print_r($result);

 

原文链接:https://bbs.csdn.net/topics/391954223 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值