Programmatically set the value of a multi-value field from multiple arrays
Educated guess: (The key was to merge the arrays by using array_merge())

// Put all values in an array().
$AllItems = array_merge($FruitsCategory, $DrinksCategory, $DrinksCategory); // use array_merge

foreach ($AllItems as $Item) {
  $article-&gt;field_article_all_items[] = ['target_id' =&gt; $Item];
}

$article-&gt;save();


Also it can be used within the node creation:

// Put all values in an array().
    $AllItems = array_merge($FruitsCategory,$VegetablesCategory,$DrinksCategory);

// Create a new "Article" node.
    $article = \Drupal\node\Entity\Node::create([
        'type' =&gt; 'article',        
        'title' =&gt; Test,
        'langcode' =&gt; 'en',
        'uid' =&gt; '1',
        'status' =&gt; '1',
        'created' =&gt; $current_time,
        'field_article_all_items' =&gt; $AllItems,  // use array_merge
        ]);
// Save the created node.
    $article-&gt;save();