我期待将我的数组分组到子数组中,当它们具有相同的供应商ID时。我在这里看过很多类似的问题,但是我无法让他们中的任何人为我工作。我已经尝试了foreach循环,甚至PHP合并函数。我必须为此使用MySQLi,所以我不能使用PDO进行分组。按值分组数组
这是我有:
Array
(
[supplierID] => 1
[drugID] => 1
[costPrice] => 9.98
[reorderQTY] => 50
)
Array
(
[supplierID] => 1
[drugID] => 2
[costPrice] => 9.98
[reorderQTY] => 50
)
Array
(
[supplierID] => 2
[drugID] => 3
[costPrice] => 9.98
[reorderQTY] => 50
)
这就是我需要:
Array
(
[supplierID] => 1
Array
(
[drugID] => 1
[costPrice] => 9.98
[reorderQTY] => 50
)
[drugID] => 2
[costPrice] => 9.98
[reorderQTY] => 50
)
)
Array
(
[supplierID] => 2
Array
(
[drugID] => 3
[costPrice] => 9.98
[reorderQTY] => 50
)
)
这是我在输出阵列以获得上述结果的PHP:
if(isset($_POST["automatic"])){
$sql = "SELECT supplierID,drugID,costPrice,reorderQTY FROM drugs WHERE quantityInStock <= reorderLevel";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "<pre>";
print_r($row);// I need to sort this array into sub array groups by supplierID key
echo "</pre>";
}
}else{
echo " <tr><td>0 results </td></tr>";
}
mysqli_close($conn);
}
pdo与分组有什么关系?分组是你在sql中做的事情,而且pdo只是在那里发送sql到数据库服务器。它可以不在乎如果你分组或不。这不是pdo的工作。 –
你不能让数组看起来像你想要的。这是一个无效的标记。您不能有多个具有相同名称的密钥(“supplierID”)。并且你不能同时使用整数和数组。@Tom Millards下面的回答是你应该去的方式...... –