【问题标题】:Reformat the post array重新格式化 post 数组
【发布时间】:2012-04-12 07:06:59
【问题描述】:

我有一个如下的帖子数组:

[quantity] => Array
    (
        [5] => 10
        [23] => 20
    )

[price] => Array
    (
        [5] => 100.00 $
        [23] => 200.00 $
    )

[amount] => Array
    (
        [5] => 1,000.00 $  
        [23] => 4,000.00 $ 
    )

5 和 23 是产品的 id。我需要将其转换为:

[5]  => Array
     (
        [quantity] => 10
        [price]    => 100.00 $
        [amount]   => 1,000.00 USD
     )
[23] = => Array
     (
        [quantity] => 20
        [price]    => 200.00 $
        [amount]   => 4,000.00 USD
     )

我怎样才能有效地实现这一点,以便它们可以为 mysql 插入做好准备?

【问题讨论】:

  • @Repox, foreach ($post as $input_key => $input_values) { foreach ($input_values as $field => $value) { $tmp[$field][$input_key] = $value; } } 坦率地说它有效,但我只想知道这是否是最好的方法。
  • @yahyaE 如果可行,我觉得它很好。
  • 解决方案似乎很合理——简短而简单。我喜欢它。
  • @yahyaE 这不是多余的吗,因为数组键是产品ID?
  • @Repox,你是对的,我注意到,因为我按下添加 cmets,所以立即删除评论,但你很快就可以看到并回答它..

标签: php mysql arrays multidimensional-array


【解决方案1】:

遍历其中一个数组,获取 ID 并重建。

例子:

// YOUR DATA
$quantity = array();
$price = array();
$amount = array();

// NEW ARRAY
$array = array();

foreach ($quantity as $id => $itemQty) {
   $itemPrice = $price[$id];
   $itemAmount = $amount[$id];
   $array[$id] = array("quantity" => $itemQty, "amount" => $itemAmount, "price" => $itemPrice);
}

现在您可以根据需要对 $array 中的数据进行排序。

【讨论】:

  • 感谢您的评论。我想在这里,我应该解散数组或者$quantity = $post['quantity'] 应该可以继续吗?
  • 如果你的意思是 $quantity = $_POST['quantity'];然后是的。但也不要忘记获取其他 2 个数组。
  • :) 是的,我的错误因此出现在我的代码中,$post = $_[POST]。谢谢。
【解决方案2】:
$quantity = array(5=>10,23=>20);
$price    = array(5=>'100.00$',23=>'200.00$');
$amount   = array(5=>'1000.00$',23=>'4000.00$');

$newData  = array_map(null, $quantity, $price,$amount);
$newKeys  = array_keys($quantity);
$data     = array_combine($newKeys,$newData);

echo('<pre>');
print_r($data);

但是数组必须是有序的!

【讨论】:

    猜你喜欢
    • 2021-01-09
    • 2021-12-18
    • 1970-01-01
    • 2022-12-05
    • 1970-01-01
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多