дезинфицирующее средство для памяти; как заставить печатать номера исходных строк

В PHP 5.6 и выше вы можете сгладить двухмерные массивы с помощью array_merge после распаковки внешнего массива с помощью оператора .... Код прост и понятен.

$a = [[10, 20], [30, 40]];
$b = [["x" => "X", "y" => "Y"], ["p" => "P", "q" => "Q"]];

print_r(array_merge(...$a));
print_r(array_merge(...$b));

Array
(
    [0] => 10
    [1] => 20
    [2] => 30
    [3] => 40
)
Array
(
    [x] => X
    [y] => Y
    [p] => P
    [q] => Q
)

Но он не работает, когда внешний массив имеет не числовые клавиши. В этом случае вам сначала нужно вызвать array_values.

$c = ["a" => ["x" => "X", "y" => "Y"], "b" => ["p" => "P", "q" => "Q"]];
print_r(array_merge(...array_values($c)));

Array
(
    [x] => X
    [y] => Y
    [p] => P
    [q] => Q
)
14
задан jww 27 February 2016 в 15:27
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: