我有一个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数组中。
但我不得不停止因为我不明白该怎么做。
答案 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..
)
)