使用相同数组索引的不同值填充来自 mysql 的 php 数组

发布于 2024-12-17 00:44:08 字数 721 浏览 1 评论 0原文

我有一个 mysql 数据库,其中包含用户表的 id 、 idUser 、 idCompany 、 idProfession 列。

现在我将选择所有这些字段并创建一个以这种方式构建的数组: 数组[idUser] = 数组[id=> x , idCompany => xx , idProfession => xxx)

例如,1 个用户可以为更多公司工作并从事不同的职业。 因此,每个数组 [idUser] 可以有多个数组(id,idCompany,idProfession),并且每个 idUser 会有 1 个结果,而不是同一 idUser 的多个结果。

现在,在我执行查询后,我编写了这段代码,但当然 id 没有执行我想要的操作,因为它总是用另一个元素替换相同的元素,导致 while 循环。

$data=array();
$sql_result="SELECT etc...........";

    while($rows = mysql_fetch_array($sql_result,MYSQL_BOTH)){
        $data[idUser] = array('idCompany' => $rows['idCompany'], 'profession' => $rows['idProfession'] ); 

我正在考虑在 while 中执行 for 循环,将数据存储在 tmp 数组中。

但我不得不停下来,因为我不明白该怎么做。

I have a mysql DB with those column id , idUser , idCompany , idProfession for users table.

Now i would Select all those field and make an array that is build in this way :
array[idUser] = array [id=> x , idCompany => xx , idProfession => xxx)

For example 1 user could work for more company and do different profession.
So each array[idUser] Could have multiple array(id, idCompany,idProfession) and i would have 1 result for each idUser instead multiple result for the same idUser.

Now after i did the query i wrote this code but of course id doesnt do what i want becouse it replace always the same element with another one cause the while loop.

$data=array();
$sql_result="SELECT etc...........";

    while($rows = mysql_fetch_array($sql_result,MYSQL_BOTH)){
        $data[idUser] = array('idCompany' => $rows['idCompany'], 'profession' => $rows['idProfession'] ); 

I was thinking to do a for loop in the while , store the data in a tmp array.

But i had to stop becouse i didnt understand how to do that.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

愿得七秒忆 2024-12-24 00:44:09

这是你想要的吗?

$users=array();
$sql_result="SELECT * FROM users";

while($row = mysql_fetch_array($sql_result,MYSQL_BOTH)){
    $users[ $row['idUser'] ][] = array('idCompany' => $row['idCompany'], 'profession' => $row['idProfession'] ); 
}

这将像这样填充数组:

array(
  idUser => array(
      array('idCompany', 'profession'),
      array('idCompany', 'profession'),
      etc..
     )
)

Does this do what you want?

$users=array();
$sql_result="SELECT * FROM users";

while($row = mysql_fetch_array($sql_result,MYSQL_BOTH)){
    $users[ $row['idUser'] ][] = array('idCompany' => $row['idCompany'], 'profession' => $row['idProfession'] ); 
}

This will populate the array like this:

array(
  idUser => array(
      array('idCompany', 'profession'),
      array('idCompany', 'profession'),
      etc..
     )
)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文