2013-11-25 3 views
-2

У меня есть сценарий, который удаляет из массива, если длина превышает 6.Преобразование Еогеасп в цикл

foreach ($array as $key=>$value) 
{ 
    if (strlen($value) > 6) 
    { 
     unset($array[$key]); 
    } 
} 

, который я конвертировать в цикл:

for($i=0, $j=0 ; $i<count($array) ; $i++) 
{ 
    if(strlen($array[$i])<6) 
    { 
     $lessthan6[$j] = $array[$i]; 
     $j = $j+1; 
    } 
} 

, не снята с охраны массив он просто хранится в новой переменной массива.

Что такое эквивалент foreach($values as #value => $val) в for loop? Я очень смущен. спасибо, что помогли мне в продвижении.

+0

in for цикл вы использовали '<6' not '> 6'! –

+0

Не могли бы вы лучше объяснить свой вопрос? Что ты хочешь делать? – noizer

+0

@ Caffè, что эквивалентно 'foreach ($ values ​​as $ value => $ val)' in for loop? – Destiny

ответ

1
for ($i = 0, $length = count($array); $i < $length; $i++) { 
    if (strlen($array[$i]) > 6) { 
     unset($array[$i]); 
    } 
} 
+0

im get errors unifiend offset – Destiny

+0

I не: http://3v4l.org/1AH3A – deceze

0
$keys = array_keys($values); 
for($i = 0; $i < count($values); $i++) { 
    $key = $key[$i]; 
    $value = $values[$key]; 
} 

Вы, вероятно, следует проверить array_slice(), который сделает вашу задачу, если я правильно понял, намного проще

0
<?php 
$array = array("Prashant", "Ghimire" , "is" , "a", "good", "boy"); 
for($i=0, $j=0 ; $i<count($array) ; $i++) 
{ 
    if(strlen($array[$i]) <= 6) 
    { 
     unset($array[$i]); 
    } 
} 
var_dump($array); 
?> 
+0

@peashant есть способ отключить его, чтобы не поместить его в новую переменную? – Destiny

+0

use var_dump ($ array); наконец –

0

Читать массив в обратном порядке:

for($i=count($array) - 1; $i>= 0 ; $i--) 
{ 
    if(strlen($array[$i]) > 6) 
    { 
     unset($array[$i]); 
    } 
} 
Смежные вопросы