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

标签 php arrays multidimensional-array

我对多维数组有点陌生,想看看我做的是否正确。最好,我想在主数组中命名数组以便于使用。

$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']);
}

关于来自数据库结果的 PHP 多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17396831/

相关文章:

php - 字段选择值更改时如何在 Magento 自定义管理表单中添加字段集

php - 正则表达式用于任何数字后跟空格,然后是带空格的字符串

c++ - Typedef Student 不工作

Javascript 数组与 Php 数组

javascript - Lodash 嵌套查找对象到数组

php - 多重排序子数组——包含范围数据的子数组

php - 在打印之前检查 file_get_contents 返回

php - 如何将字符 append 到父窗口的组件

python - 如何从 (1000, 1) 和索引槽 n 值创建 (1000, 500) 数组?

java - 如何生成具有非重复数字的二维数组表?