array_splice()

5383 ワード

PHPは特定の配列要素を特定に削除する方法を提供していないことを知っています.しかし、unset()関数を使用して、次のプログラムのような要件を達成することができます.1 <?php 2 3      $arr = array ( 'apple' , 'banana' , 'cat' , 'dog' ); 4 5      unset( $arr [2]); 6      print_r( $arr ); 7 8 ?>
プログラムの実行結果:1 Array ( [0] => apple [1] => banana [3] => dog )
しかし,この方法の最大の欠点は配列インデックスを再構築しないことであり,すなわち配列の3番目の要素がなくなったことである.
   
資料を調べたところ、PHPはこの機能を提供していたが、間接的だった.この関数はarray_splice().
使いやすいように、私は関数にカプセル化して、みんなが使いやすいようにしました.01 <?php 02 03      function array_remove(& $arr , $offset ) 04      05          array_splice ( $arr , $offset , 1);  06      } 07 08      $arr = array ( 'apple' , 'banana' , 'cat' , 'dog' ); 09 10      array_remove( $arr , 2); 11      print_r( $arr ); 12 ?>
テストにより、2の位置という要素が本当に削除され、インデックスが再構築されたことがわかります.
   
プログラムの実行結果:1 Array ( [0] => apple [1] => banana [2] => dog )
PHP array_splice()関数
array_splice()関数とarray_slice()関数は、配列内の一連の要素を選択しますが、返さずに削除し、他の値で置き換えます.4番目のパラメータが指定されている場合、前に選択した要素は4番目のパラメータで指定された配列に置き換えられます.
最後に生成された配列が返されます.
構文:array_splice(array,offset,length,array)
  • array:必須です.配列を指定します.
  • offset:必須.を選択します.offsetが正の場合、入力配列で指定したオフセット量から削除します.offsetが負の場合、入力配列の最後からこの値で指定したオフセット量を逆数から削除します.
  • length:オプション.を選択します.このパラメータを省略すると、配列のoffsetから末尾までのすべての部分が除去されます.lengthが指定され、正の値が指定されている場合、このような多くの要素が削除されます.lengthを指定して負の値を指定した場合、offsetから配列の最後の逆数lengthまでの間のすべての要素が除去されます.
  • array:除去された要素は、この配列の要素に置き換えられます.値が除去されていない場合、この配列の要素は指定された位置に挿入されます.   

  • 関数が要素を削除していない場合(length=0)、代替配列はstartパラメータの位置から挿入されます.
    例1:1 <?php 2 $a1 = array (0=> "Dog" ,1=> "Cat" ,2=> "Horse" ,3=> "Bird" ); 3 $a2 = array (0=> "Tiger" ,1=> "Lion" ); 4 array_splice ( $a1 ,0,2, $a2 ); 5 print_r( $a1 ); 6 ?> 7 //output : Array ( [0] => Tiger [1] => Lion [2] => Horse [3] => Bird )
    例2:1 <?php 2 $a1 = array (0=> "Dog" ,1=> "Cat" ,2=> "Horse" ,3=> "Bird" ); 3 $a2 = array (0=> "Tiger" ,1=> "Lion" ); 4 print_r( array_splice ( $a1 ,0,2, $a2 )); 5 ?> 6 //output : Array ( [0] => Dog [1] => Cat )
    例3:1 <?php 2 // length 0 3 $a1 = array (0=> "Dog" ,1=> "Cat" ); 4 $a2 = array (0=> "Tiger" ,1=> "Lion" ); 5 array_splice ( $a1 ,1,0, $a2 ); 6 print_r( $a1 ); 7 ?> 8 //output : Array ( [0] => Dog [1] => Tiger [2] => Lion [3] => Cat )