PHP Вставить массив в ассоциативный массив в определенной позиции - PullRequest
0 голосов
/ 12 марта 2019

Я хочу вставить один массив в другой ассоциативный массив в определенной позиции, но для меня array_splice не работает. Я хочу сделать это:

    $example = [
       'first' => 'element',
       'second' => 'element'];
    $example[] = [
       'third' => 'element',
       'fourth' => 'element'];

Теперь у нас есть ассоциативный массив с двумя другими массивами. И я хочу вставить в него другой массив, например, между ними. Это важно, я хочу вставить в определенный индекс.

     $insert[] = [
        'insert_first' => 'element',
        'insert_second' => 'element'];
     //I made before it: 
     $index = 1;
     array_splice($example, $index, 0, $insert); //but it doesn't work :(

Я хочу следующий результат:

array(
 [0] => array(
    'first' => 'element',
    'second' => 'element'
 )
 [1] => array(
    'insert_first' => 'element',
    'insert_second' => 'element'
 )
 [2] => array(
    'third' => 'element',
    'fourth' => 'element'
 )
)

Может кто-нибудь помочь мне, как я могу это сделать?

Спасибо, Балаш из Венгрии.

Ответы [ 2 ]

4 голосов
/ 12 марта 2019
$example[] = [
   'first' => 'element',
   'second' => 'element'];
$example[] = [
   'third' => 'element',
   'fourth' => 'element'];
$insert[] = [
    'insert_first' => 'element',
    'insert_second' => 'element'];

$index = 1;
array_splice($example, $index, 0, $insert);
print_r($example);

Дает вам:

Array ( 
 [0] => Array ( [first] => element [second] => element ) 
 [1] => Array ( [insert_first] => element [insert_second] => element ) 
 [2] => Array ( [third] => element [fourth] => element ) )
2 голосов
/ 12 марта 2019

Ваш исходный массив неверен. Правильный ответ:

// Here you have array with one element which is array:
$example = [
   [
       'first' => 'element',
       'second' => 'element'
   ]
];
// Add another element which is array too
$example[] = [
   'third' => 'element',
   'fourth' => 'element'];
// define insert array
$insert[] = [
    'insert_first' => 'element',
    'insert_second' => 'element'
];
$index = 1;
array_splice($example, $index, 0, $insert);
...