按键PHP CodeIgniter的数组

时间:2012-07-07 12:26:18

标签: php mysql arrays codeigniter

我的PHP代码有以下响应。

Array
(
[customer] => 402
[carat] => Array
    (
        [0] => 6
        [1] => 5
    )

[units] => Array
    (
        [0] => grams
        [1] => dwt
        [2] => dwt
    )

[weight] => Array
    (
        [0] => 5
        [1] => 3
        [2] => 6
    )

[our_payout] => Array
    (
        [0] => 15
        [1] => 9
        [2] => 60
    )

[sale_payout] => Array
    (
        [0] => 18
        [1] => 12
        [2] => 180
    )

[hidden_carat] => Array
    (
        [0] => 6
        [1] => 5
        [2] =>
    )

[hidden_unit] => Array
    (
        [0] => 1
        [1] => 2
        [2] => 2
    )

[carat_scale_price] => Array
    (
        [0] =>
        [1] =>
        [2] =>
    )

[sales_id] => Array
    (
        [0] =>
        [1] =>
        [2] =>
    )

[currency_rate_id] => Array
    (
        [0] =>
        [1] =>
        [2] =>
    )

[gold_price_id] => Array
    (
        [0] =>
        [1] =>
        [2] =>
    )

[taget_percentage] =>
[reference] => 0
[notes] =>
[unit] => 0
[customer_id] => 402
[total_items] => 2
[submit] =>
)

我希望example [0] => grams加入[0] => 5 [0] => 16,依此类推。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

我和史蒂夫在一起,我不确定你要求的是什么。看起来你想要转置那个矩阵,但仅限于某些键?假设上面的原始数组位于变量$ arr中,这里可能会有你想要的东西:

$lineItems = array();
$i = 0;
$allLineItemsHaveI = true;

while($allLineItemsHaveI) {
   $lineItems[$i] = array();
   foreach($arr as $key => $subArr) {
      if(array_key_exists($i, $subArr)) {
         $lineItems[$i][$key] = $subArr[$i];
      } else {
         $allLineItemsHaveI = false;
      }
   } 

   $i++;
}    

array_pop($lineItems);

这是输出:

Array
(
    [0] => Array
        (
            [carat] => 6
            [units] => grams
            [weight] => 5
            [our_payout] => 15
            [sale_payout] => 18
            [hidden_carat] => 6
        )

    [1] => Array
        (
            [carat] => 5
            [units] => dwt
            [weight] => 3
            [our_payout] => 9
            [sale_payout] => 12
            [hidden_carat] => 5
        )

)

另外,请检查一下:Transposing multidimensional arrays in PHP