从mysql填充php数组,使用相同数组索引的不同值

时间:2011-11-18 18:17:49

标签: php mysql arrays populate

我有一个mysql数据库,其中包含那些列id,idUser,idCompany,idProfession for users表。

现在我将选择所有这些字段并创建一个以这种方式构建的数组: array [idUser] = array [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数组中。

但我不得不停止因为我不明白该怎么做。

1 个答案:

答案 0 :(得分:1)

这样做你想要的吗?

$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..
     )
)