Другие языки программирования и технологии

Как в foreach ($arr as $value) обратится к следующему элементу массива? PHP

foreach ($arr as $value) { а тут сделать условие примерно такое if (следующий элемент массива равен чему-то) { } } или подскажите какой-нибудь другой способ решения этой "проблемы".
for($i = 0 ; $i < count($mas); $i++){

}
вот так )
Ализаде Мурадов
Ализаде Мурадов
41 003
Лучший ответ
Николай Войтюк for($i = 0 ; $i < count($mas); $i++){

}

а что внутри { } должно находится?

массив примерно такой

arr ['хэш уникального значения'] = 'чему равно';

т.е. arr[$i] не подходит

или придется наверно массив немного переделать и работать уже с
arr[0]='чему равно';
arr[1]='чему равно';
но это лишние преобразования типа потеря производительности :)
Юрий Серебряков За count() используемый внутри for надо сначала бить по рукам, а потом отрывать их вообще, пока такой код не попал в массы.
break; // решает эту проблему.. .

когда прохождение по массиву дойдёт до точки, где УСЛОВИЕ верно, то перебор массива остановится и Вы сможете обратится к конкретной переменной, той, которой и хотели.. .

foreach ( $arr as $key=>$value ) { if ($value == "чему-то") { break; } }

на выходе получаем ЭЛЕМЕНТ массива $key, который равен "чему-то"

$arr = array( 'a' => '123', 'b' => '456', 'c' => '789');
foreach ( $arr as $key=>$value ) {
// если элемент равен '456'
if ($value == '456') { break; }
}

на выходе получим, что: 'b' = '456';

если вам надо получить именно ПЕРЕМЕННУЮ, то есть то, что неизвестно, то ставим двойной знак доллара.. .

$arr = array( 'a' => '123', 'b' => '456', 'c' => '789');
foreach ( $arr as $$key=>$value ) {
// если элемент равен '456'
if ($value == '456') { break; }
}

на выходе получим, что: $b = '456';

если же надо обратится к следующему элементу массива, и увидеть что условие ложно или правда и исходя из этого делать брек или продолжать перебор в цикле, то foreach к этому не предназначен, здесь надо использовать обычные циклы

for ($i=0; $
Заур Мавлютов
Заур Мавлютов
81 893
функция next();
=======
$arr = array('str' => 'string'; 'int' => 'integer');
foreach ($arr as $key => $value) {

if($value == 'integer'){
echo 'Да, в массиве есть integer';
}

}
=======
:)
Ереке Ерсаинов ==========
$arr = array('hash1' => 'string'; 'hash2' => 'integer');
foreach ($arr as $key => $value) {

if($key == 'hash1'){
echo 'hash1 = ' . $value;
}

}
==========
Под ваш пример :)

Похожие вопросы