Автор Тема: Есть ли такая функция ?  (Прочитано 9237 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн GotZfild

  • Универсал
  • Старожил
  • ****
  • Сообщений: 456
  • +0/-0
  • 2
    • Просмотр профиля
    • http://myphp.dem.ru
Есть ли такая функция ?
« Ответ #15 : 27 Июня 2002, 19:13:04 »
Цитировать
$form_value = $per;
$form_value - в эту переменную передается цифра из формы .

А зачем тогда $per?
Цитировать
Кстати , ты наисал так что скрипт пишет или в один файл или в другой , а надо чтоб в 2 файла (ну как у меня в скрипте) .

Почему ИЛИ? Цикл выполняется два раза и пишет он, соответственно, такое же количество раз.
Цитировать
Массив до выполнения array_splice и после -НЕ ИЗМЕНИЛСЯ

Перечитай еще раз (или больше) описание этой функции из Мана.
После трех дней без программирования жизнь становится бессмысленной.

Оффлайн Pacher

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 57
  • +0/-0
  • 0
    • Просмотр профиля
Есть ли такая функция ?
« Ответ #16 : 27 Июня 2002, 19:18:44 »
GotZfild
Блин , не пашет :)
Удаляет сразу весь массив .

Оффлайн GotZfild

  • Универсал
  • Старожил
  • ****
  • Сообщений: 456
  • +0/-0
  • 2
    • Просмотр профиля
    • http://myphp.dem.ru
Есть ли такая функция ?
« Ответ #17 : 27 Июня 2002, 19:24:51 »
Pacher
Еще раз покажи ее использование, значения переменных, которые в ней задействованы и что выводит.
После трех дней без программирования жизнь становится бессмысленной.

Оффлайн Pacher

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 57
  • +0/-0
  • 0
    • Просмотр профиля
Есть ли такая функция ?
« Ответ #18 : 27 Июня 2002, 20:57:16 »
Вот .


$num
=$form_value-1
/*
принимаемое значение уменшается на один , чтобы начать с цифры "0"
*/


array_splice($body_file_data,$num,0);

array_splice($file_data,$num,-1);

print_r $file_data;
/*
это просто чтобы посмореть 
что сейчас в массиве находится
*/
print_r $body_file_data;


До выполнения и после  нету никаких изменений , все так  же , все элементы на месте и ничего не удаляется .

Оффлайн Pacher

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 57
  • +0/-0
  • 0
    • Просмотр профиля
Есть ли такая функция ?
« Ответ #19 : 27 Июня 2002, 21:49:10 »
Все перепробовал , ничего не пашет ......

Оффлайн GotZfild

  • Универсал
  • Старожил
  • ****
  • Сообщений: 456
  • +0/-0
  • 2
    • Просмотр профиля
    • http://myphp.dem.ru
Есть ли такая функция ?
« Ответ #20 : 27 Июня 2002, 22:33:27 »
Pacher
Ты читал сообщения, которые до этого писались?
Каким образом длина вырезаемого массива может быть равной нулю или, тем более, минус единице?
Кроме того, аргумент у функции print_r берется в скобки.
После трех дней без программирования жизнь становится бессмысленной.

Оффлайн Pacher

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 57
  • +0/-0
  • 0
    • Просмотр профиля
Есть ли такая функция ?
« Ответ #21 : 27 Июня 2002, 22:39:18 »
GotZfild
Блин . так как тогда сделать ? :)

Оффлайн GotZfild

  • Универсал
  • Старожил
  • ****
  • Сообщений: 456
  • +0/-0
  • 2
    • Просмотр профиля
    • http://myphp.dem.ru
Есть ли такая функция ?
« Ответ #22 : 27 Июня 2002, 22:47:41 »

$length 
3// например
array_splice($body_file_data,$num$length );
array_splice($file_data,$num$length );

Если тебе нужно вырезать один элемент, поставь в $length 1 и так далее.
После трех дней без программирования жизнь становится бессмысленной.

Оффлайн Pacher

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 57
  • +0/-0
  • 0
    • Просмотр профиля
Есть ли такая функция ?
« Ответ #23 : 28 Июня 2002, 03:55:42 »
Вот , я сделал так :



<html>
<
head>
<
titleNews Script
</title>
</
head>
<
body bgcolor="gainsboro">
<? 

$body_file_name="hah.txt";
$cra=fopen($body_file_name,"r");
$sos=fread($cra,64096);
$body_file_data=explode("|",$sos);

$name_of_file="na_na.txt";
$huy=fopen($name_of_file,"r");
$sux=fread($huy,64096);
$file_data=explode("|",$sux);

if (
$form_value==1)
{

$num=$form_value-1;

array_splice ($body_file_data,  $num,  1);

array_splice ($file_data,  $num,  2);

}

elseif (
$form_value%2
{
$www=$form_value-1;
array_splice ($body_file_data,  $www,  1);

array_splice ($file_data,  $form_value,  2);

}

else
{

$rrr=$form_value-1;
$qqq=$form_value+1;
array_splice ($body_file_data,  $rrr,  1);

array_splice ($file_data,  $qqq,  2);

}

$to_body_file=implode("|",$body_file_data);
$to_file=implode("|",$file_data);

$last=fopen($body_file_name,"w");
$set=fputs($last,$body_file_data);

$hud=fopen($name_of_file,"w");
$ser=fputs($hud,$file_data);



fclose($cra);
fclose($last);

fclose($huy);
fclose($hud);

?>
</body>
</html>






При вводе любого числа удаляется все по чистую из обоих файлов и пишется туда слово "Array" .
Ничего не понимаю .....

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Есть ли такая функция ?
« Ответ #24 : 28 Июня 2002, 11:47:38 »
Ох, опять без дяди Маньяка не разберутся.... :)
Paсher, зайди на http://www.php.net, найди array_slice и посмотри в see also... Там есть функция array_splice...

Привожу кусок кода для демонстрации:


<?php
$rtfm
=array("RTFM ","- ","Read ","the ","fucking ","manual ");
$word=array_splice($rtfm,2,4);
foreach (
$word as $elem) print $elem;
print 
"
"
;
foreach (
$rtfm as $elem) print $elem;
print 
"
"
;
?>


Выводит:
Цитировать

Read the fucking manual
RTFM -


Кстати, этот кусок кода я привел в качестве демонстрации (чтобы было максимально понятно). Обычно подобные задачи решаются так:

$rtfm
="RTFM - read the fucking manual";
$rtfm=explode(" ",$rtfm);
print 
implode(" ",array_splice($rtfm,2,4))."
"
;
print 
implode(" ",$rtfm)."
"
;
;

Как видишь, пример стал короче на две строчки (это к вопросу про решение задачи разными способами в Оффтопике).

Ну и, наконец, если тебе не надо, чтобы бился исходный массив, то задача сокращается еще больше:


$rtfm
="RTFM - read the fucking manual";
print 
implode(" ",array_splice(explode(" ",$rtfm),2,4))."
"
;
print 
$rtfm;


Выводит:
Цитировать

read the fucking manual
RTFM - read the fucking manual
« Последнее редактирование: 28 Июня 2002, 12:04:25 от Maniac »
TANSTAAFL

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28