В PHP, как бы я поместил значения массива в конец самого себя - PullRequest
1 голос
/ 18 июня 2010

Скажите, у меня есть массив:

$myArray = array("foo", "bar");

Какой хороший способ повторить значения в массиве до конца массива так:

$myArray = array("foo", "bar", "foo", "bar");

Я думал, что array_push будет работать так:

array_push($myArray, $myArray);

но это фактически выталкивает объект массива, а не значения массива.

Ответы [ 3 ]

4 голосов
/ 18 июня 2010

вы можете сделать это с array_merge

$tmp = $myArray;

$myArray = array_merge($myArray, $tmp);

Это позволит вам не беспокоиться о ключах массива.

Другое решение будет:

$tmp = $myArray;
foreach($tmp as $val) {
    $myArray[] = $val;
}
2 голосов
/ 18 июня 2010

Как насчет $myArray = array_merge($myArray, $myArray);?

1 голос
/ 18 июня 2010

Если вы хотите явно скопировать значения массива, даже если он ассоциативный:

$myArray = array("foo" => "apple", "bar" => "orange");

$myArray = array_merge($tmp = array_values($myArray), $tmp);

Новый массив будет содержать ("apple", "orange", "apple", "orange") - примечание: теперь он проиндексирован.

...