Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过php推送数组中的键和值?_Php - Fatal编程技术网

如何通过php推送数组中的键和值?

如何通过php推送数组中的键和值?,php,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_itemmet

我有一个这样的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
现在这个查询给了我两个这样的结果

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
我想用键把它放到数组中

我试过这个推码

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']);
}
array(
[name] = array(
    [0] => name1,
    [1] => name2
    ),
[quantity] = array(
    [0] => qty1,
    [1] => qty2
    )
);
或者简单地将其设置为二维数组,将每个值推入数字字段:

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)
)
而第二种方法将为您提供如下内容:

while ($row2 = mysql_fetch_array($item_name)) {
    $order_items[] = array('name' => $row2['order_item_name'],'quantity' => $row2['meta_value']);
}
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;
}
如果要构建键值数组(在这种情况下,字段映射不太重要):


你不是在推动什么,你是在分配。试着用
array\u push
(或者更简单地说,
[]
)实际编写一些代码,看看通过奇迹般地编写正确的代码是否能奏效:p你必须为此使用多维数组