Массив не объединяется - PullRequest
0 голосов
/ 07 мая 2020
$array = array(
    "Skill" => "Attack",
    "Current" => 11,
    "Target" => 22
);

$arraytwo = array(
    "Skill" => "Defence",
    "Current" => 66,
    "Target" => 129
);

$array = array_merge($array, $arraytwo);

print_r($array);

Результат становится Array ( [Skill] => Defence [Current] => 66 [Target] => 129 )

Все, что я просто хочу сделать, это объединить несколько массивов с тем же именем в многомерный массив

Ответы [ 2 ]

4 голосов
/ 07 мая 2020

То, что вы хотите использовать, - это array_merge_recursive, вместо этого sh будет выполнено именно то, что вы ищете. https://www.php.net/manual/en/function.array-merge-recursive.php

array_merge_recursive () объединяет элементы одного или нескольких массивов вместе, так что значения одного добавляются в конец предыдущего. Он возвращает результирующий массив.

Если входные массивы имеют одинаковые строковые ключи, тогда значения этих ключей объединяются в массив, и это делается рекурсивно, так что если одно из значений является сам массив, функция также объединит его с соответствующей записью в другом массиве. Если, однако, массивы имеют один и тот же ключ numeri c, более позднее значение не будет перезаписывать исходное значение, а будет добавлено.

$array = array(
    "Skill" => "Attack",
    "Current" => 11,
    "Target" => 22
);

$arraytwo = array(
    "Skill" => "Defence",
    "Current" => 66,
    "Target" => 129
);
$result = array_merge_recursive($array, $arraytwo);
print_r($result);
3 голосов
/ 07 мая 2020

Если вы действительно хотите создать многомерный массив, тогда не нужно использовать функцию array_merge. Вы просто используете языковую конструкцию array () и передаете столько массивов, сколько хотите. Посмотрите на приведенный ниже код.

$array = array(
    "Skill" => "Attack",
    "Current" => 11,
    "Target" => 22
);

$arraytwo = array(
    "Skill" => "Defence",
    "Current" => 66,
    "Target" => 129
);

$array = array($array, $arraytwo);

print_r($array);

Ваш результат будет таким, как показано ниже.

Array
(
    [0] => Array
        (
            [Skill] => Attack
            [Current] => 11
            [Target] => 22
        )

    [1] => Array
        (
            [Skill] => Defence
            [Current] => 66
            [Target] => 129
        )

)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...