2013-08-08 3 views
0

Если $ точка является (к примеру) Я хочу ток ($ идентификаторов) быть :Установить текущий массив, используя строку

$ids = array(111, 222, 333, 444); 
$point = 333; 

Если $ точки является , current ($ ids) be и так далее.


У меня есть этот код, но я искал что-то более простое:

$ids = array(111, 222, 333, 444, 555); 
$point = array_search(555, $ids); 

while(key($ids) != $point) { 
    next($ids); 
} 

$point = next($ids); 

if($point == NULL) { 
    $point = reset($ids); 
} 

echo $point; 
+0

Не уверен, что вы пытаясь добиться. Существует стандартная функция 'current()' - вы хотите, чтобы она возвращала первый элемент массива, если вы достигли конца массива? –

ответ

0
while(key($ids) != $point) { 
    next($ids); 
} 

$toEcho = next($ids); 
if (!$toEcho) { 
    $toEcho = reset($ids); 
} 
+0

Спасибо, он работает. –

2

Сброс массива, когда рядом не будет найден

while(key($ids) != $point) { 
    if (next($ids) === false) reset($ids); 
} 
+0

+1. Полный признак, поскольку до сих пор бесконечный цикл. - отредактирован: и теперь вопрос изменился. –

+0

Разве вы не имеете в виду '$ ids [key ($ ids)]! = $ Point'? – mavili

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