[PHP-users 15623]Re: unset()の挙動
sumi @ orihime.net
sumi @ orihime.net
2003年 6月 2日 (月) 18:13:08 JST
SUMiです。
> こんにちは。アットシステム進藤です。
こんにちは。
> 細かく読んでいないのですが
> PHPの配列はハッシュテーブルで、インデックスが連番とは限らない。
> つまり
> $stack[1]
> $stack[10]
> sizeof($stack) == 2
> です。
> この辺りは関係しないでしょうか。
>
> > unset( $stack[sizeof( $stack ) - 1] ); // 挙動不審
そのあたりの不整合がでないように、
$stack = Array();
とし、
$stack[] = $org[$i];
と
unset( $stack[sizeof( $stack ) - 1] ); // 挙動不審
で、必ず配列の最後の要素を扱うようにしたのですが…
と、書いているところに枡形さんからも。
> こんにちわ、桝形です。
こんにちは。
> 結果:
> ---------------------------------------------------------------------
> 1:a :a
> 2:c :a/c
> 3:d :a/c/d
> Array
> (
> [0] => a
> [1] => c
> [2] => d
> )
> [2][1]Array
> (
> [0] => a
> [1] => c
> )
> 2:.. :a/c
> Array
> (
> [0] => a
> [1] => c
> )
> [1][0]Array
> (
> [0] => a
> )
> 1:.. :a
> 2:e :a/e
> Array
> (
> [0] => a
> [3] => e
> )
> [1][1]Array
> (
> [0] => a
> [3] => e
> )
> 2:.. :a/e
> 3:f :a/e/f
> 4:g :a/e/f/g
> a/e/f/g
> ---------------------------------------------------------------------
この結果を見る限り、$array[]で配列に要素を追加する場合、unsetで削除した
配列番号は「存在するもの」として追加されているようですね。
$array[]形式での要素の追加の場合、最終項目として追加されると誤解していま
した。
どうも、お騒がせしました。
PHP-users メーリングリストの案内