我有一个MySQL表:
-------------------
|type_id|type_name|
-------------------
| 22 | Toyota |
| 22 | Mazda |
| 23 | Volvo |
| 23 | Man |
| 25 | Scania |
| 25 | Iveco |
| 25 | Fiat |
-------------------
是从用户输入动态创建的。我想使用PHP从表中创建一个数组:
array(
'22' => array('Toyota', 'Mazda'),
'23' => array('Volvo', 'Man'),
'25' => array('Scania', 'Iveco','Fiat'),
);
其中array id为type_id,element为type_id的type_name.I试过:
$results = array();
while($line = mysqli_fetch_array($result, MYSQL_ASSOC))
{
$results[] = $line;
}
print_r($results);
但我得到了:
Array (
[0] => Array (
[type_id] => 22
[type_name] => Toyota
)
[1] => Array (
[type_name] => 22
[type_name] => Mazda
)
...so on
请帮忙!
答案 0 :(得分:1)
您需要稍微更改一下代码,它才能正常工作: -
$results = array();
while($line = mysqli_fetch_array($result, MYSQL_ASSOC)) {
$results[$line['type_id']][] = $line['Type_name']; //check change here
}
print_r($results);
注意: - 如果有任何错误,请检查您的列名并更正它们。
答案 1 :(得分:1)
请在代码
中替换您的数据库名称和表名$conn = mysqli_connect("localhost","root","","dbname");
$query ="select * from table";
$exe = mysqli_query($conn,$query);
$input = array();
$type = array();
while ($result = mysqli_fetch_array($exe))
{
if(array_key_exists($result['type_id'], $input))
{
$type[] = $result['type_name'];
}
else
{
$type = array($result['type_name']);
}
$input[$result['type_id']] = $type;
}
echo "<pre>";
print_r($input);
答案 2 :(得分:0)
从表中选择type_id和Type_name列,在foreach循环中执行以下操作:
$output = array();
foreach ($result as $item){
$output[$item['type_id']][] = $item['Type_name'];
}