2016-11-15 2 views
0

нормально, не знаю, почему это не работаетPHP снята с охраны не работает

$ информация содержит массив, есть 3 копии user_pass, которые все должны быть удалены, первые два будут удалены, а третий нет.

Любые идеи?

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. Это действительно ваш случай? Что делать, если вы заменили for цикл с foreach:

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

ааа, может быть из-за графа ($ инфо) внутри для цикла. $ i

 Смежные вопросы

  • Нет связанных вопросов^_^