急,请大神帮忙 php二维数组重新排序

qq_35053143 2016-05-19 05:19:57
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 );
...全文
320 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
傲雪星枫 2016-05-19
  • 打赏
  • 举报
回复
如问题解决了请结帖。
qq_35053143 2016-05-19
  • 打赏
  • 举报
回复
多谢大家指点了
傲雪星枫 2016-05-19
  • 打赏
  • 举报
回复
你的是key=>value 怎么排都不影响使用。 不过可以这样写

<?php
$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);
xuzuning 2016-05-19
  • 打赏
  • 举报
回复
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[$i] = compact($k);
}
print_r($a);
Array
(
    [0] => Array
        (
            [id] => 3
            [username] => alex 
            [mobile] => 15533336666
            [parentname] => john
            [parentmobile] => 156477765465
            [proname] => tttt
            [num] => 1
            [userid] => 6
            [parentid] => 8
            [cpid] => 0
        )

)

qq_35053143 2016-05-19
  • 打赏
  • 举报
回复
引用 5 楼 u014567183 的回复:
[quote=引用 3 楼 qq_35053143 的回复:] 从数据库里面调出100条的话,有无这样的排序办法?
从数据库?你查询的时候直接改变下顺序不就行了?[/quote] 最后两个字段还是从另外的表间接查询的结果,然后用数组追加进来的,所以就导致现在的这个位置问题
u014567183 2016-05-19
  • 打赏
  • 举报
回复
引用 3 楼 qq_35053143 的回复:
从数据库里面调出100条的话,有无这样的排序办法?
从数据库?你查询的时候直接改变下顺序不就行了?
qq_35053143 2016-05-19
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
你这算什么排序? 不就是调一下位置吗?为什么要调呢?
引用 1 楼 xuzuning 的回复:
你这算什么排序? 不就是调一下位置吗?为什么要调呢?
有办法调位置吗?谢谢了
qq_35053143 2016-05-19
  • 打赏
  • 举报
回复
从数据库里面调出100条的话,有无这样的排序办法?
qq_35053143 2016-05-19
  • 打赏
  • 举报
回复
最后要用excel输出呀,不这样排序的话,格式全乱了
xuzuning 2016-05-19
  • 打赏
  • 举报
回复
你这算什么排序? 不就是调一下位置吗?为什么要调呢?

21,892

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧