duanshan5259
duanshan5259
2019-04-03 07:10

PHP array_merge会覆盖自己

已采纳

I'm struggling with array_merge to make an array of items. The code which I have:

$items = [];
foreach ($products as $product) {
    Log::info($product->orderproduct->idorder_product);

    $items = array_merge($items, [
       'id'          => $product->orderproduct->idorder_product
    ]);
}
Log::info(print_r($items, true));

The output is:

6
7
['id' => 7]

How can I create an array with both id's?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • dongyuan1984 dongyuan1984 2年前

    Not sure what result you expect, so there are 2 options:

    foreach ($products as $product) {
        Log::info($product->orderproduct->idorder_product);
    
        // First
        $items[] = $product->orderproduct->idorder_product;
        // Second
        $items[] = ['id' => $product->orderproduct->idorder_product];
    }
    
    点赞 评论 复制链接分享
  • douyao2529 douyao2529 2年前

    Array merge is just another array which add into the bottom of the array. I think you are misleading us on the result you want to get.

    $items = array(); / $items = [];
    

    you can push the data into array easily by this code

    $items[] = array(
     'id' => $product->orderproduct->idorder_product,
    )
    
    点赞 评论 复制链接分享