Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Замана элемента массива
 
 автор: Николай2357   (27.06.2008 в 21:14)   письмо автору
 
 

Здравствуйте.
Подскажите, как заменить элемент массива, зная его проядковый номер?
Спасибо.

   
 
 автор: exp   (27.06.2008 в 21:36)   письмо автору
 
   для: Николай2357   (27.06.2008 в 21:14)
 

если имеется ввиду номер как ключ элемента массива
и изменение как изменение значения этого элемента ,
то можно при помощи операции присвоения
<?
$array
[$numer] = 'new value';

   
 
 автор: Николай2357   (27.06.2008 в 22:39)   письмо автору
 
   для: 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;
}
?>

Может неправильно, но работает.

   
 
 автор: exp   (27.06.2008 в 23:31)   письмо автору
 
   для: Николай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())
мохно ещё как-нибудь

   
 
 автор: Николай2357   (28.06.2008 в 05:27)   письмо автору
 
   для: exp   (27.06.2008 в 23:31)
 

Спасибо.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования