【问题标题】:Populate php array from mysql with different values for the same array index使用相同数组索引的不同值从 mysql 填充 php 数组
【发布时间】:2012-01-01 11:48:10
【问题描述】:

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

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

例如,一位用户可以为更多公司工作并从事不同的职业。 因此,每个数组 [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 数组中。

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

【问题讨论】:

    标签: php mysql arrays populate


    【解决方案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..
         )
    )
    

    【讨论】:

    • 没问题 Jasper,我的朋友们都遇到了!
    猜你喜欢
    • 1970-01-01
    • 2016-10-04
    • 1970-01-01
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多