結果のindexは振り直されるのではないですか?

array_diffやarray_intersectなどは新しく配列を作っているというわけではありません。
2020年8月14日
ユーザー

お世話になります。

$uniques = array_unique($merged);
print_r($uniques);

$diff1 = array_diff($a, $b);
print_r($diff1); // [3]

$diff2 = array_diff($b, $a);
print_r($diff2); // [12]

$common = array_intersect($a, $b);
print_r($common); // [4, 8]

の結果が↓

Array
(
    [0] => 3
    [1] => 4
    [2] => 8
    [5] => 12
)
Array
(
    [0] => 3
)
Array
(
    [2] => 12
)
Array
(
    [1] => 4
    [2] => 8
)

のようになる部分について質問させていただきます。

結果が各々の値で構成される配列となる点については理解できるのですが、
indexの番号が[0][1]...とスタートするのではなく、起点となった元の配列の
index番号のままです。また、array[index番号]で値を取得してみても、
純粋な0,1...の順番でなく、結果に現れるindex番号でないと値が出力されません。

今まで学習してきた感覚では、新しくできた配列のindexは0,1...で作られるのが
しっくり来ますが、今回のような結果では配列の何番目という数え方ができず
扱いづらいような気がしました。

おそらく初学者故の疑問点だとは思いますが、
このあたりについてどのように捉えればよろしいでしょうか?

ご教授をお願い致します。

この回答を見るにはプレミアムサービスへの登録が必要です

プレミアムサービスとは?