Заполните массив php из mysql различными значениями для одного и того же индекса массива - PullRequest
1 голос
/ 18 ноября 2011

У меня есть mysql DB с этими столбцами id, idUser, idCompany, idProfession для таблицы пользователей.

Теперь я бы выбрал все эти поля и создал массив, который строится таким образом: array [idUser]= array [id => x, idCompany => xx, idProfession => xxx)

Например, 1 пользователь может работать в другой компании и заниматься другой профессией.Таким образом, каждый массив [idUser] может иметь несколько массивов (id, idCompany, idProfession), и у меня будет 1 результат для каждого idUser вместо нескольких результатов для одного и того же 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'] ); 

В то время я думал сделать цикл for, сохранить данные в массиве tmp.

Но мне пришлось остановиться, потому что я не понимал, как это сделать.

1 Ответ

1 голос
/ 18 ноября 2011

Делает ли это то, что вы хотите?

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