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?

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];
}

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,
)