как изменять масив перебором?

que_bunt

Новичок
как изменять масив перебором?

функция foreach не позволяет изменять сам масив, она работает с его копией.
в мануале сказано что в php5 можно делать так:
PHP:
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
   $value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
не подскажете как можно это организовать в php4 ?
 

Фанат

oncle terrible
Команда форума
какой кошмар.
que_bunt ты никогда не слышал, случайно, что у массива есть индексы?
 

que_bunt

Новичок
Автор оригинала: itprog
que_bunt
[m]array_map[/m]
возможно я не так привел пример из мануала.
но мне надо чтобы я также мог использовать ключи.

вот что мне надо:
PHP:
foreach ($menu as $k=>$v) {
	if ($v=='out') {
		$v="<a href='index.php?task=$k'><img name='$k' src='menu/".$k."_out.gif' border=0 onMouseover=rollOver('$k', 'over')onMouseout=rollOver('$k', 'out')></a>";
	}
	else {
		$v="<a href='index.php?task=$k'><img name='$k' src='menu/".$k."_over.gif' border=0></a>";
	}
}
только вместо foreach ($menu as $k=>$v) конструкцию которая бы могла изменять $v в самом масиве а не в его копии.

-~{}~ 09.04.06 17:29:

Фанат слышал, а что похоже на то что нет?
 

Фанат

oncle terrible
Команда форума
да, похоже.
судя по твоему коду с foreach, ты об индексах не слышал.
попробуй вспомнить.
только вместо foreach ($menu as $k=>$v) конструкцию которая бы могла изменять $v в самом масиве а не в его копии.
вот. об этом я и говорю.
ты не знаешь, как изменить элемент массива, обратившись к нему по индексу!
 

que_bunt

Новичок
Фанат $array['index']='I know';

но только после вышеприведенного кода елементы масива $menu не изменяюся! тоесть как для кfждого ключа ($k)значение ($v) равнялось 'out' так и осталось.
 

Black Raven

Новичок
мда, а вместо $v написать $menu[$k] никак?

PHP:
foreach ($menu as $k=>$v) { 
    if ($v=='out') { 
        $menu[$k]="<a href='index.php?task=$k'><img name='$k' src='menu/".$k."_out.gif' border=0 onMouseover=rollOver('$k', 'over')onMouseout=rollOver('$k', 'out')></a>"; 
    } 
    else { 
        $menu[$k]="<a href='index.php?task=$k'><img name='$k' src='menu/".$k."_over.gif' border=0></a>"; 
    } 
}
 

Фанат

oncle terrible
Команда форума
а где в вышеприведённом коде ты меняешь элементы массива $menu? Я что-то не заметил.

Вообще, пора бы тебе уже задуматься на минутку, и вместо того, чтобы доказывать мне существование ужасной проблемы с массивами в пхп 4, и сообразить, где ты тупишь безбожно =)
 

que_bunt

Новичок
Black Raven большое спасибо. наконец-то я увидел где я "туплю безбожно"

Фанат тебе тоже спасибо.
я не доказывал "существование ужасной проблемы с массивами в пхп 4". я просто думал что есть какая то конструкция которую я не знаю. а оказалось что просто ступил.
 
Сверху