[英]PHP Nested arrays with while inside while loop
我正在努力实现以下目标:
Array (
[1] => Array (
[0] => 1
[1] => 2
)
[3] => Array (
[0] => 5
)
[2] => Array (
[0] => 3
)
)
这是我当前的代码:
function create_role_node_array()
{
if($_SESSION['userid'])
{
$query1 = "SELECT * FROM auth_user_role_relation_list WHERE user_id='".$_SESSION['userid']."' ORDER BY creation_time ASC";
$result1 = mysqli_query($GLOBALS['c'], $query1);
$rows='';
$data=array();
if(!empty($result1))
$rows=mysqli_num_rows($result1);
else
$rows='';
if(!empty($rows))
{
while($rows=mysqli_fetch_assoc($result1))
{
$query2 = "SELECT * FROM auth_node_role_relation_list WHERE role_id='".$rows['role_id']."' ORDER BY group_id ASC, creation_time ASC";
$result2 = mysqli_query($GLOBALS['c'], $query2);
$rows2='';
$data2=array();
if(!empty($result2))
$rows2=mysqli_num_rows($result2);
else
$rows2='';
if(!empty($rows2))
{
while($rows2=mysqli_fetch_assoc($result2))
{
$data2[0].=$rows2['node_id'];
}
}
$data[$rows['role_id']].=$data2[0];
}
return $data;
}
}
}
print_r(create_role_node_array());
我目前得到的结果是:
Array ( [1] => 12 [3] => 5 [2] => 3 )
实际上,第一个“数组”部分中的这12个是彼此相邻的两个独立结果。
我在这里检查了其他主题,但没有一个适用于我的情况。 谁能在这里知道解决方案? 任何帮助表示赞赏。
试试这个;
<?php
function create_role_node_array()
{
if($_SESSION['userid'])
{
$query1 = "SELECT * FROM auth_user_role_relation_list WHERE user_id='".$_SESSION['userid']."' ORDER BY creation_time ASC";
$result1 = mysqli_query($GLOBALS['c'], $query1);
$rows='';
$data=array();
if(!empty($result1))
$rows=mysqli_num_rows($result1);
else
$rows='';
if(!empty($rows))
{
while($rows=mysqli_fetch_assoc($result1))
{
$query2 = "SELECT * FROM auth_node_role_relation_list WHERE role_id='".$rows['role_id']."' ORDER BY group_id ASC, creation_time ASC";
$result2 = mysqli_query($GLOBALS['c'], $query2);
$rows2='';
$data2=array();
if(!empty($result2))
$rows2=mysqli_num_rows($result2);
else
$rows2='';
if(!empty($rows2))
{
$i=0;
while($rows2=mysqli_fetch_assoc($result2))
{
$data2[]=$rows2['node_id'];
$i++;
}
}
$data[$rows['role_id']]=$data2;
unset($data2);
}
return $data;
}
}
}
print_r(create_role_node_array());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.