Как объединить несколько массивов в новый массив? - PullRequest
0 голосов
/ 22 декабря 2011

Я сохранил переменные $_POST и $_FILES в свойствах объекта в моем объекте newUpload. Я пытаюсь сгенерировать оператор обновления SQL, но у меня возникают проблемы при объединении массивов. Как мне создать массив, который объединяет несколько массивов? Глобальное ключевое слово сбивает с толку, и его следует избегать?

$array = array();
foreach ($this->post as $value) {
    array_push($array, $value);
}
foreach ($this->files as $key => $value) {
    $list = array('name', 'type', 'size', 'extension', 'filetime');
    if (in_array($key, $list)) {
        array_push($array, $value);
    }
}
$array .= $this->moved['filepath'];
echo $array;

UPDATE: Ошибка с использованием array_push вместо $array[] = $value. Я думал, что область действия массива была локальной для цикла foreach, но функция array_push была неправильной. Код ниже работал. Искренне спасибо всем - ваши комментарии действительно помогли мне найти решение.

foreach ($this->files as $key => $value) {
    $array2 = array('name', 'type', 'size', 'extension', 'filetime');
    if (in_array($key, $array2)) {
        $array[] = $value;
    }
}        
$array = array_merge($array, $this->post);
$array[] = $this->moved['filepath'];

1 Ответ

1 голос
/ 22 декабря 2011

PHP имеет функцию, которая делает это, называемую array_merge , и для ее использования в вашем случае вы должны сделать это:

$array = array_merge($_POST, $_FILES);
...