2016-11-15 7 views
0

を動作していない、わからない、そこにすべて削除する必要がありuser_passの3つのコピー、最初の二つが削除されているがありますが、第三ではありません。PHPの設定が解除OK

アイデア?

if($phoneDetails['show_passwd'] == '0') { 
    for($i = 0; $i < count($info); $i++) { 
     if($info[$i]['header']['tag'] == 'user_pass') { 
      unset($info[$i]); 
     }elseif($info[$i]['header']['tag'] == 'http_pass') { 
      unset($info[$i]); 
     } 
    } 
} 
+0

は '$のinfo'配列、 –

答えて

0

あなたのコードは、配列のインデックスが0からN-1に行くという事実に依存しています。本当にあなたの場合ですか?あなたはforeachforサイクルを置き換えたらどう:

if ($phoneDetails['show_passwd'] == '0') { 
    foreach ($info as $i => $v) { 
    if ($info[$i]['header']['tag'] == 'user_pass']) { 
     unset($info[$i]); 
    } else if ($info[$i]['header']['tag'] == 'http_pass') { 
     unset($info[$i]); 
    } 
    } 
} 
0

同じコードあなたが与えられたが、より多くのリファクタリング。ところで、私はあなたが本当に

if($phoneDetails['show_passwd'] == '0') { //or if(!$phoneDetails['show_passwd']) 
    $i = 0; 
    for($i; $i < count($info); $i++) { 
     $tag = !empty($info[$i]['header']['tag']) ? $info[$i]['header']['tag'] : ''; 
     if ($tag == 'user_pass' || $tag == 'http_pass') { 
      unset($info[$i]); 
     } 
    } 
} 
+0

AAHは、理由はループの内部のカウント($情報)であるかもしれないしてください必要なものを取得できませんでした。 $ i

関連する問題