在多维PHP数组的特定索引后插入两项,并删除现有索引处的数组

在多维PHP数组的特定索引后插入两项,并删除现有索引处的数组,php,arrays,array-splice,Php,Arrays,Array Splice,我希望在foreach循环中,在特定索引与多维数组中的条件匹配后插入两个数组,并删除该索引处的现有数组 示例阵列: $array = array( array( 1, 2, 3 ), array( 4, 5, 6 ), array( 7, 8, 9 ) ); 插入和删除现有索引数组后 $array = array( array( 1, 2, 3 ), array( 'new', 'array' ), array( 'another', 'item' ),

我希望在
foreach
循环中,在特定索引与多维数组中的条件匹配后插入两个数组,并删除该索引处的现有数组

示例阵列:

$array = array( 
  array( 1, 2, 3 ), 
  array( 4, 5, 6 ), 
  array( 7, 8, 9 ) 
);
插入和删除现有索引数组后

$array = array( 
  array( 1, 2, 3 ), 
  array( 'new', 'array' ), 
  array( 'another', 'item' ), 
  array( 7, 8, 9 )
);
在循环中,当满足条件时:

foreach ( $array as $index => $value ) :
    if ( $index % 2 == 0 ) :
    // insert two array elements in $array after index $index and remove $index
    endif;
endforeach;
感谢您的帮助

更新:


我尝试了数组\u splice(),但由于它增加了匹配上现有数组的长度,因此它最终也会覆盖循环中的新数组元素。

为此使用
foreach
循环将是浪费。只需使用:


为此使用
foreach
循环将是浪费。只需使用:


我通过以下更改使其正常工作:

$array = array( 
    array( 1, 2, 3 ), 
    array( 4, 5, 6 ), 
    array( 7, 8, 9 ) 
);

$new_array = array();

foreach ( $array as $index => $value ) {

    if ( $index % 2 == 0 ) {

        array_push( $new_array, array( 'new', 'array' ) );
        array_push( $new_array, array( 'another', 'array' ) );

        continue;

    }

    array_push( $new_array, $array[ $index ] );

}

$array = $new_array;

我通过以下更改使其正常工作:

$array = array( 
    array( 1, 2, 3 ), 
    array( 4, 5, 6 ), 
    array( 7, 8, 9 ) 
);

$new_array = array();

foreach ( $array as $index => $value ) {

    if ( $index % 2 == 0 ) {

        array_push( $new_array, array( 'new', 'array' ) );
        array_push( $new_array, array( 'another', 'array' ) );

        continue;

    }

    array_push( $new_array, $array[ $index ] );

}

$array = $new_array;

实际数组有100多个数组,我只在找到特定匹配项时替换索引。我试图简化代码以获得答案,但没有给手头的问题增加不必要的复杂性。你说的是“特定索引”,所以这就是我的答案。如果你想修改你的问题,请这样做。这也可能有助于展示你为解决问题做了哪些尝试,以及哪里出了问题。我还说“在循环中”我道歉。数组_splice()不起作用。我将使原始问题更彻底。我不建议您在迭代数组时更改数组时遇到问题。实际数组有100多个数组,我仅在找到特定匹配项时替换索引。我试图简化代码以获得答案,但没有给手头的问题增加不必要的复杂性。你说的是“特定索引”,所以这就是我的答案。如果你想修改你的问题,请这样做。这也可能有助于展示你为解决问题做了哪些尝试,以及哪里出了问题。我还说“在循环中”我道歉。数组_splice()不起作用。我会让原来的问题更彻底。在迭代数组时修改数组会有问题,我不建议这样做。
$array = array( 
    array( 1, 2, 3 ), 
    array( 4, 5, 6 ), 
    array( 7, 8, 9 ) 
);

$new_array = array();

foreach ( $array as $index => $value ) {

    if ( $index % 2 == 0 ) {

        array_push( $new_array, array( 'new', 'array' ) );
        array_push( $new_array, array( 'another', 'array' ) );

        continue;

    }

    array_push( $new_array, $array[ $index ] );

}

$array = $new_array;