繁体   English   中英

来自数据库结果的PHP多维数组

[英]PHP multidimensional array from database results

我对多维数组有点新意,并希望看看我做得对。 最好,为了便于使用,我想在主阵列中命名数组。

$unique_array = array(
    username=>array(),
    user_id=>array(),
    weeknumber=>array()
    );

然后我有一个while循环来检查一些数据库结果:

while($row = mysql_fetch_array($query)) //yes, I know mysql is deprecated
{
$unique_array[] = username=>$row['username'], user_id=>$row['user_id'], week number=>['weeknumber'];
}

我不确定是否要正确地从while循环中将值放置在数组中,或者是否需要通过其他方法完成。 我找不到在SO或其他地方容易理解的任何资源来处理多维数组中命名数组中的查询结果。

编辑跟进问题:我还需要检查数组中是否有重复的值,因为会有多个完全相同的值,但是我只想要其中之一。

任何帮助表示赞赏!

编辑解决方案:

通过修改答案,我能够创建符合我的需求的代码。

数组初始化:

$unique_array = array(
    'username'=>array(),
    'user_id'=>array(),
    'weeknumber'=>array()
    );

从while循环中构建数组:

while($row = mysql_fetch_array($query))
{
$unique_array[] = array('username'=>$row['username'], 'user_id'=>$row['user_id'], 'weeknumber'=>$row['weeknumber']);
}

最后,我需要确保数组值是唯一的(由于数据库和查询限制存在重复条目),在while循环后我有:

print_r(multi_unique($unique_array));

顶级是关联数组还是数值数组?

如果它是一个关联数组,它应该有这样的结构:

$unique_array = array(
    'username'=>array('John','Mike',...),
    'user_id'=>array(1,2,3,...),
    'week_number'=>array(1,2,3,...)
);

或者如果它是一个数值数组,它应该有这样的结构:

$unique_array = array(
    array('username'=>'John', 'user_id'=>1, 'week_number'=>1),
    array('username'=>'Mike', 'user_id'=>2, 'week_number'=>2),
    array('username'=>'Sam', 'user_id'=>3, 'week_number'=>3),
    ...
)

对于第一种类型,请使用以下代码:

while ($row = mysql_fetch_assoc($query)) {
    $unique_array['username'][] = $row['username'],
    $unique_array['user_id'][] = $row['user_id'],
    $unique_array['week_number'][] = $row['week_number'],
}

对于第二种类型,它类似于您的代码。 但是有一些语法问题:

while($row = mysql_fetch_array($query)) //yes, I know mysql is deprecated
{
    $unique_array[] = array('username'=>$row['username'], 'user_id'=>$row['user_id'], 'week_number'=>$row['weeknumber']);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM