揮発性のメモ2

http://d.hatena.ne.jp/iww/

PHPで、foreachでぐるぐる回ってる最中に要素を削除する

一般的に禁忌というか面倒な 配列をループ中の要素削除 もPHPなら安全

<?php
$list = ["a","b","c","dog","e"];

print_r($list);
print("count = ". count($list) ."\n");

foreach($list as $k=>$a) if($a=="dog") unset($list[$k]);

print_r($list);
print("count = ". count($list) ."\n");

foreachで回って、要素が "dog" だったら削除する

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => dog
    [4] => e
)
count = 5
Array
(
    [0] => a
    [1] => b
    [2] => c
    [4] => e
)
count = 4

unsetで削除してもキーは維持される仕様のおかげだ。
素数 count() も正しく減ってる。 やったぜ