|
|
|
| Здравствуйте.
Подскажите, как заменить элемент массива, зная его проядковый номер?
Спасибо. | |
|
|
|
|
|
|
|
для: Николай2357
(27.06.2008 в 21:14)
| | если имеется ввиду номер как ключ элемента массива
и изменение как изменение значения этого элемента ,
то можно при помощи операции присвоения
<?
$array[$numer] = 'new value';
|
| |
|
|
|
|
|
|
|
для: exp
(27.06.2008 в 21:36)
| | Спасибо, разобрался.
Я в панике не так вопрос задал. Может есть такая функция, котрая удаляет или изменяет элемент внутри массива по его ключу. Я нашел только shift() и pop(), а как в середине не знаю.
Мне нужно изменить один элемент в многомерном цикличном массиве. Вот так я сделал:
<?
$id=count($mas);
for($j=0; $j<$id; $j++){
$line=explode("|",$mas[$j]);
$cl=count($line);
for($i=0; $i<$cl; $i++){
$lin=$line[$i];
if($i==3){$lin="nev vflue";}
$li.=$lin;
}
echo $li;
}
?>
|
Может неправильно, но работает. | |
|
|
|
|
|
|
|
для: Николай2357
(27.06.2008 в 22:39)
| | > $li.=$lin;
похоже целью этих вложенных циклов является формирование строки $li и вывод всех приобретаемых ею в циклах значений
Если заменять , будет выглядеть например как-то так
<pre><?php
$mas = array(
'1|0|первый|old_value|qqqq',
'2|1|второй|old_value|wwwwwwww',
'3|2|третий|old_value|eeeeeee',
'4|3|четвёртый|old_value|rrrrrr',
'5'
);
function set_el(&$val, $key, $param = array('',''))
{
$tmp = explode("|", $val);
if (isset($tmp[ $param[0] ])) $tmp[ $param[0] ] = $param[1];
$val = implode("|", $tmp);
}
array_walk($mas, 'set_el', array(3,'new_value'));
print_r($mas);
?></pre>
|
( если делать при помощи array_walk())
мохно ещё как-нибудь | |
|
|
|
|
|
|
|
для: exp
(27.06.2008 в 23:31)
| | Спасибо. | |
|
|
|