[PHP-users 1018] Re: 配列から要素を取り除くには
Osamu Shigematsu
php-users@php.gr.jp
Thu, 02 Aug 2001 10:22:42 +0900
重松です。こんにちは。
> | このとき、単純に削除したい要素の index で unset() していないのは何か意図があ
> | るのでしょうか?
>
> 間を正しく埋め、配列の添え字に欠番ができないように
> するために、最後の要素を unset しています。
>
> unset($arr[$elem]);
>
> とすると、count($arr) の値は小さくなってますが、
> 間があいています。削除した後に
>
> for($i=0; $i<count($arr); $i++){
> print $arr[$i] . "\n";
> }
>
> というプログラムを付け加え、両方の unset を試すと
> 意味がわかるとおもいます。
解説ありがとうございます。
前々から疑問だったのですが、PHP の array では、添え字というよりもキーなんで
すよね? そのため、たとえば、今回のようにある要素を削ったとしても、キーは単に
そのキーの値が削られるだけで、後ろが自動的に詰まるわけではない、ということで
すよね?
だとすると、
<?php
$a = array("a"=>"A","b"=>"B");
print "\$a[0] => " . $a[0];
?>
のように、配列 $a の最初の要素を表示したいと思ってもできない、ということにな
りますね。
便利なんだか不便なんだかよくわからないですが、理解を深めることができたように
思います。
--
Osamu Shigematsu
http://www.ravi.ne.jp/
mailto:shige@ravi.ne.jp