私はこれをやっていた:
$attributes = array("a", "b", "c", "d","e","f", "g","h" ,"i","j","k","l");
foreach($all as $p) {
foreach($attributes as $key => $a) {
if (!$p->getAttribute($a)) {
unset($attributes[$key]);
}
}
}
しかし、unset$attributes
はループ内の配列を縮小し、必要な値をunsetしているようです。
編集:これは何が起こるかではありません。本当の問題は、これらはネストされたループであるため、falseを返す場合、最初のループがtrueを返す属性を$ pに提供する可能性があるため!$p->getAttribute($a)
、配列で設定を解除してはいけないということです。foreach($all as $p)
!$p->getAttribute($a)
$attributesからそれぞれの$aを削除したい場合は、これが必要です。それを行うための最も効率的な方法は何ですか?