如何推键和值在数组通过php


How to push key and value in array through php?

我有一个这样的SQL查询

SELECT wp_woocommerce_order_items.order_item_name, wp_woocommerce_order_itemmeta.meta_value FROM wp_woocommerce_order_items INNER JOIN wp_woocommerce_order_itemmeta ON wp_woocommerce_order_items.order_item_id=wp_woocommerce_order_itemmeta.order_item_id WHERE wp_woocommerce_order_items.order_item_type = 'line_item' AND wp_woocommerce_order_itemmeta.meta_key='_qty' AND wp_woocommerce_order_items.order_id=1477

现在这个查询给了我两个这样的结果

order_item_name                     meta_value
Handicap Accessible Porta Potty         1
Sani Stand Handwashing Station          1

,我想把它压入数组与键

i try this code for push

while ($row2 = mysql_fetch_array($item_name)) {
    $order_items['name'] = $row2['order_item_name'];
    $order_items['quantity'] = $row2['meta_value'];
}

但上面的代码只推送一个元素。请帮助

你可以做两件事之一:

让数组中的每个元素都变成另一个数组,像这样:

while ($row2 = mysql_fetch_array($item_name)) {
    $order_items[] = array('name' => $row2['order_item_name'],'quantity' => $row2['meta_value']);
}

或者简单地将其设置为二维数组,将每个值压入一个数字字段:

while ($row2 = mysql_fetch_array($item_name)) {
    $order_items['name'][] = $row2['order_item_name'];
    $order_items['quantity'][] = $row2['meta_value'];
}

第一个方法将产生如下结构:

array(
[0] = array(
    name => name1,
    quantity => qty1),
[1] = array(
    name => name2,
    quantity => qty2)
)

而第二个方法会给你这样的东西:

array(
[name] = array(
    [0] => name1,
    [1] => name2
    ),
[quantity] = array(
    [0] => qty1,
    [1] => qty2
    )
);

首先,像这样编写查询,以便在SQL结果集中已经完成字段映射:

SELECT wp_woocommerce_order_items.order_item_name name, wp_woocommerce_order_itemmeta.meta_value quantity
FROM wp_woocommerce_order_items 
INNER JOIN wp_woocommerce_order_itemmeta ON wp_woocommerce_order_items.order_item_id=wp_woocommerce_order_itemmeta.order_item_id 
WHERE wp_woocommerce_order_items.order_item_type = 'line_item' AND wp_woocommerce_order_itemmeta.meta_key='_qty' AND wp_woocommerce_order_items.order_id=1477

然后构建数组:

$values = [];
while (($row = mysql_fetch_assoc($item_name)) !== false) {
    $values[] = $row;
}

如果您想要构建一个键值数组(在这种情况下,字段映射不那么重要):

$values = [];
while (($row = mysql_fetch_assoc($item_name)) !== false) {
    $values[$row['name']] = $row['quantity'];
}