0

場合によっては「フィルタリング」する必要があるオブジェクトの多次元配列を取得しました。これは私が書いた関数です:

foreach($data["index"] as $key => $value){
    if(preg_match("/EXPRESSION/",$value->property)){
        unset($data["index"][$key]);
    }
}

エラーは返されませんが、配列が var_dumped の場合、設定を解除したと思っていた値がまだそこにあります。

別のトピックでこれを見つけました:

foreach ($this->result['list'] as $key => &$row) {
    if ($this_row_is_boring) {
        unset($this->result['list'][$key]);
    }
}

私が書いたものとの唯一の違いは、私が $data を呼び出すときに $this->result を呼び出すことです。

何か案は?ありがとう

4

1 に答える 1

0

正規表現が一致しない場合、unset()決して呼び出されません。

preg_match()true を返すかどうかを判断するステートメントを挿入できますか?

if(preg_match("/EXPRESSION/",$value->property)){
    unset($data["index"][$key]);
    echo "Match found with \$key: $key\n";
}
于 2011-07-01T20:32:17.363 に答える