[英]Printing a php multidimensional array
我正在嘗試打印一個數組。
第一個例子。
$result2 = mysql_query("SELECT
ps_product_attribute.id_product_attribute AS attribute_id,
ps_advanced_attributes.pack_product_id AS base_product,
ps_advanced_attributes.pack_product_qty AS qty_base_product,
ps_stock_available.quantity AS base_product_on_hand,
FLOOR(ps_stock_available.quantity / ps_advanced_attributes.pack_product_qty) AS available_to_customer
FROM ps_product_attribute
JOIN ps_advanced_attributes ON ps_advanced_attributes.attribute_id = ps_product_attribute.id_product_attribute
JOIN ps_stock_available ON ps_stock_available.id_product = ps_advanced_attributes.pack_product_id
ORDER BY ps_product_attribute.id_product_attribute ASC, ps_stock_available.quantity DESC");
echo '<pre>';
WHILE($db_field2 = mysql_fetch_array($result2)){
print_r($db_field2);}
echo '</pre>';
給出這個結果...
Array(
[0] => 6703
[attribute_id] => 6703
[1] => 382
[base_product] => 382
[2] => 1
[qty_base_product] => 1
[3] => 69
[base_product_on_hand] => 69
[4] => 69
[available_to_customer] => 69
)
只有這一結果
示例2 ...
$result2 = mysql_query("SELECT
ps_product_attribute.id_product_attribute AS attribute_id,
ps_advanced_attributes.pack_product_id AS base_product,
ps_advanced_attributes.pack_product_qty AS qty_base_product,
ps_stock_available.quantity AS base_product_on_hand,
FLOOR(ps_stock_available.quantity / ps_advanced_attributes.pack_product_qty) AS available_to_customer
FROM ps_product_attribute
JOIN ps_advanced_attributes ON ps_advanced_attributes.attribute_id = ps_product_attribute.id_product_attribute
JOIN ps_stock_available ON ps_stock_available.id_product = ps_advanced_attributes.pack_product_id
ORDER BY ps_product_attribute.id_product_attribute ASC, ps_stock_available.quantity DESC");
echo '<pre>';
WHILE($db_field2 = mysql_fetch_array($result2)){
print_r($db_field2);}
echo '</pre>';
扣除此結果...
Array
(
[0] => 6703
[attribute_id] => 6703
[1] => 382
[base_product] => 382
[2] => 1
[qty_base_product] => 1
[3] => 69
[base_product_on_hand] => 69
[4] => 69
[available_to_customer] => 69
)
Array
(
[0] => 6703
[attribute_id] => 6703
[1] => 103
[base_product] => 103
[2] => 1
[qty_base_product] => 1
[3] => 4
[base_product_on_hand] => 4
[4] => 4
[available_to_customer] => 4
)
Array
(
[0] => 6703
[attribute_id] => 6703
[1] => 471
[base_product] => 471
[2] => 1
[qty_base_product] => 1
[3] => 0
[base_product_on_hand] => 0
[4] => 0
[available_to_customer] => 0
)
Array
(
[0] => 6704
[attribute_id] => 6704
[1] => 103
[base_product] => 103
[2] => 1
[qty_base_product] => 1
[3] => 4
[base_product_on_hand] => 4
[4] => 4
[available_to_customer] => 4
)
Array
(
[0] => 6704
[attribute_id] => 6704
[1] => 397
[base_product] => 397
[2] => 1
[qty_base_product] => 1
[3] => 0
[base_product_on_hand] => 0
[4] => 0
[available_to_customer] => 0
)
Array
(
[0] => 6704
[attribute_id] => 6704
[1] => 465
[base_product] => 465
[2] => 1
[qty_base_product] => 1
[3] => 0
[base_product_on_hand] => 0
[4] => 0
[available_to_customer] => 0
)
Array
(
[0] => 6705
[attribute_id] => 6705
[1] => 103
[base_product] => 103
[2] => 1
[qty_base_product] => 1
[3] => 4
[base_product_on_hand] => 4
[4] => 4
[available_to_customer] => 4
)
Array
(
[0] => 6705
[attribute_id] => 6705
[1] => 533
[base_product] => 533
[2] => 1
[qty_base_product] => 1
[3] => 2
[base_product_on_hand] => 2
[4] => 2
[available_to_customer] => 2
)
Array
(
[0] => 6705
[attribute_id] => 6705
[1] => 469
[base_product] => 469
[2] => 1
[qty_base_product] => 1
[3] => 0
[base_product_on_hand] => 0
[4] => 0
[available_to_customer] => 0
)
Array
(
[0] => 6706
[attribute_id] => 6706
[1] => 395
[base_product] => 395
[2] => 1
[qty_base_product] => 1
[3] => 41
[base_product_on_hand] => 41
[4] => 41
[available_to_customer] => 41
)
Array
(
[0] => 6706
[attribute_id] => 6706
[1] => 103
[base_product] => 103
[2] => 1
[qty_base_product] => 1
[3] => 4
[base_product_on_hand] => 4
[4] => 4
[available_to_customer] => 4
)
Array
(
[0] => 6706
[attribute_id] => 6706
[1] => 468
[base_product] => 468
[2] => 1
[qty_base_product] => 1
[3] => 0
[base_product_on_hand] => 0
[4] => 0
[available_to_customer] => 0
)
如您所見,結果很多,但不完全是我期望的結果。 在兩個示例中,我都得到重復的數據。
我在這里做錯什么了嗎? 我認為第一個示例應該已經打印了數組的全部內容。
您應該首先將所有結果提取到數組,然后再打印
$result = [];
while ($row = mysql_fetch_assoc($result2)){
$result[] = $row;
}
print_r($result);
UPD:要擺脫重復數據,請使用mysql_fetch_assoc而不是mysql_fetch_array
UPD2:考慮使用mysqli擴展名而不是mysql。 PHP.net
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.