从SQL查询构建数组

时间:2017-04-06 09:16:57

标签: php sql arrays wordpress sorting

我正在编写一个WordPress插件的脚本,该插件应该扩展插件。现在我正在优化我的脚本。但我的问题是处理数据......插件应用了数据。所以我无法改变任何事情。我必须处理它。

在这里,您可以看到数据库的片段。但是,我选择了product_shop_0/1/2/3的数量相同的不同帖子,这是唯一的财富......它是可变的! enter image description here

最后我希望有这样一个阵列:

array(92) {
  [0]=> int(5) "24202"
  array(4) {
    ["product_shops_0"]=>
    array(4) {
       ["product_shops_0_price"]=> double(4) "35.99"
       ["product_shops_0_price_old"]=> double(0) ""
       ["product_shops_0_shop"]=> int(5) "18319"
       ["product_shops_0_link"]=> string(78) "http://www.kinguin...."
    }
    ["product_shops_1"]=>
    array(4) {
       ...
    }
    ["product_shops_2"]=>
    array(4) {
       ...
    }
    ["product_shops_3"]=>
    array(4) {
       ["product_shops_3_price"]=> double(4) "40.39"
       ["product_shops_3_price_old"]=> double(0) ""
       ["product_shops_3_shop"]=> int(5) "18315"
       ["product_shops_3_link"]=> string(78) "http://www.gameladen...."
    }
  }

我目前的问题是我不知道如何解决这个问题。 product_shops_0_price . **EVERY** {POST_ID {1}} product_shops_0_price`。所以,它再次从0开始。这些数据属于一起:

  • Alls has it's ownmeta_keys拥有相同的`post_id``
  • 这些数据应该分散在meta_valuesproduct_shops_0等等......

有谁知道我怎么能像这样堆叠那个数组? 我已经尝试过,但我无法解决它......

我的尝试:

product_shops_1

对帮助非常高兴! 谢谢你和问候!

1 个答案:

答案 0 :(得分:1)

试试这个,愿它可以帮到你:正则表达式测试click here

<?php
$stmt = $database->query("SELECT pm.post_id, pm.meta_key, pm.meta_value FROM fWR6qIN_postmeta pm GROUP BY pm.post_id, pm.meta_key");

$map = array();
while($row = $stmt->fetch_assoc())
{
    preg_match('/^(product_shops_\d*)_(\S*)/', $row['meta_key'], $matches);
    $product_offset = $matches[1];

    $map[$row['post_id']][$product_offset][$row['meta_key']] = $row['meta_value'];
}