array_slice で配列を取りだそうとしたところ、はまってしまったので、勉強したことをメモしておきます。

ここまで詳しく解説しているのは、多分、ここ以外ありません。

 

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

print_r($array);
//Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 )

//添え字を維持
//前から4つ目より最後までの配列
$array_b = array_slice($array,3,null,true);
print_r($array_b);
//Array ( [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 )

//添え字を振り直し
//前から4つ目より最後までの配列
$array_b = array_slice($array,3,null);
print_r($array_b);
//Array ( [0] => 3 [1] => 4 [2] => 5 [3] => 6 [4] => 7 [5] => 8 [6] => 9 )

//-----------------------------------------

//添え字を維持
//前から4つ目より3つの配列
$array_b = array_slice($array,3,3,true);
print_r($array_b);
//Array ( [3] => 3 [4] => 4 [5] => 5 )

//添え字を振り直し
//前から4つ目より3つの配列
$array_b = array_slice($array,3,3);
print_r($array_b);
//Array ( [0] => 3 [1] => 4 [2] => 5 )

//-----------------------------------------

//添え字を維持
//前から4つ目から最後までの配列より、後ろ2つを削除
$array_b = array_slice($array,3,-2,true);
print_r($array_b);
//Array ( [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 )

//添え字を振り直し
//前から4つ目から最後までの配列より、後ろ2つを削除
$array_b = array_slice($array,3,-2);
print_r($array_b);
//Array ( [0] => 3 [1] => 4 [2] => 5 [3] => 6 [4] => 7 )

//-----------------------------------------

//添え字を維持
//後ろから3つ目より最後までの配列
$array_b = array_slice($array,-3,null,true);
print_r($array_b);
//Array ( [7] => 7 [8] => 8 [9] => 9 )

//添え字を振り直し
//後ろから3つ目より最後までの配列
$array_b = array_slice($array,-3,null);
print_r($array_b);
//Array ( [0] => 7 [1] => 8 [2] => 9 )

//-----------------------------------------

//添え字を維持
//後ろから3つ目より2つの配列
$array_b = array_slice($array,-3,2,true);
print_r($array_b);
//Array ( [7] => 7 [8] => 8 )

//添え字を振り直し
//後ろから3つ目より2つの配列
$array_b = array_slice($array,-3,2);
print_r($array_b);
//Array ( [0] => 7 [1] => 8 )

//-----------------------------------------

//添え字を維持
//後ろから3つ目から最後までの配列より、後ろから2つを削除
$array_b = array_slice($array,-3,-2,true);
print_r($array_b);
//Array ( [7] => 7 )

//添え字を振り直し
//後ろから3つ目から最後までの配列より、後ろから2つを削除
$array_b = array_slice($array,-3,-2);
print_r($array_b);
//Array ( [0] => 7 )

//-----------------------------------------