推送多个数组切成一个|| PHP

So I have something like:

$array = array("red", "yellow", "hello", "world");
$array2 = array("1", "2", "3", "4");

$myArray = array();
array_push($myArray, $array, $array2 );
$myArray = array_slice($myArray, 0, 2);

and I want $myArray to be ["red", "yellow"], and if $array was empty $myArray would be ["1", "2"]

Does that make any sense? Right now array_slice is counting the arrays being pushed into $myArray, not the content inside them. How would I go about doing this?

Where you use array_push you probably want to use array_merge:

$array = array("red", "yellow", "hello", "world");
$array2 = array("1", "2", "3", "4");

$myArray = array_merge($array, $array2);
$myArray = array_slice($myArray, 0, 2);

Explanation:

array_push pushes the elements to the end of the existing array, so

$array = array('a');
array_push($array, 'b');
// results in $array = array('a', 'b');

Thus in your code, just after the array_push-call

$myArray = array(array('red', 'yellow', ...), array('1', '2', ...))

array_merge merges two or more arrays

$myArray = array_merge($array, $array2);
// results in $myArray = array('red', 'yellow', ..., '1', '2', ...)

Try using array_merge() instead of array_push()

$array = array("red", "yellow", "hello", "world");
$array2 = array("1", "2", "3", "4");

$myArray = array_merge($array, $array2 );
$myArray = array_slice($myArray, 0, 2);

array_push() is adding each array as an element of $myArray instead of combining them with it.