【问题标题】:mysql php multidimensional arraymysql php多维数组
【发布时间】:2015-09-14 15:09:09
【问题描述】:

我有这个mysql结果:

pic  userid   username
 A     1       peter
 A     2       jack
 B     3       maria
 B     4       anna

我想要一个这样的多维数组:

{"pics": 
   {"pic" => "A", "users" => [
                     {"userid" => "1", "username" => "peter"}, 
                     {"userid" => "2", "username" = "jack"}
                   ],
    "pic" => "B", "users" => [
                     {"userid" => "3", "username" => "maria"}, 
                     {"userid" => "4", "username" = "anna"}
                   ]}

谢谢!

我试过了:

$result=mysql_query("SELECT A.pic, B.userid, B.username FROM `tabpics` A LEFT JOIN tabuser B ON (A.userid = B.userid)");
while ($date=mysql_fetch_array($result)){
$pics[$date['pic']][] = array("userid"=>$date['userid'],"username"=>$date['username']);
} 

结果如下:

{"A"=> {"userid" => "1", "username" => "peter"}, "A" => {"userid" => "2", "username" = "jack"} ....

【问题讨论】:

  • Stack Overflow 不是代码编写服务。
  • 所以告诉我们你之前尝试过什么,你有什么 sql 和 php,那么你面临的问题是什么
  • 只是坐在家里。问题浮现在脑海。张贴在这里。怎么了人。在此处发布您的代码。
  • 对不起.. 我已经编辑了我的帖子
  • 怎么了。你的结果和你想要的一样吗?

标签: php mysql multidimensional-array


【解决方案1】:

请试试这个

$userArr = "";
$result=mysql_query("SELECT A.pic, B.userid, B.username FROM `tabpics` A LEFT JOIN tabuser B ON (A.userid = B.userid)"); 
while ($data=mysql_fetch_array($result)){
    $userArr[$data['pic']][] = array("userid"=>$data['userid'],"username"=>$data['username']); 
}

if(count($userArr) > 0){
    foreach ($userArr as $picName => $valArr) {
        $pics[]=array("pic" => $picName ,"users" => $valArr);
    }
}

echo "<pre>";
print_r($pics);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-16
    • 2015-04-30
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 2016-02-10
    相关资源
    最近更新 更多