Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регуляльные выражовывания, перемещение 
:(
    Опции темы
Kirill Baranov
  Дата 21.7.2005, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 30.6.2004

Репутация: -2
Всего: -2



есть строка:
1,2,3,4,5,6,7,8,9,10,

как переместить к примеру цифру 5 при каждом обновлении экрана налево? то есть при обновлении страницы чтобы было: 1,2,3,5,4,6,7,8,9,10, потом: 1,2,5,3,4,5,6,7,8,9,10,


ну с обновлением страницы это я пример привел просто... вот как такое сделать? smile smile
PM MAIL   Вверх
Mal Hack
Дата 21.7.2005, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Самый просто вариант. имеем массив чисел и потом циклом генерим массив уже в той сортировке, которая нам нужна.
PM ICQ   Вверх
Kirill Baranov
Дата 21.7.2005, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 30.6.2004

Репутация: -2
Всего: -2



Mal Hack
Вот это и есть самый главный вопрос smile Array`ем пробовал - не выходит.

Есть shuffle, reverse... но это ж не то всё... надо, чтобы был именно определенный порядок.

Это сообщение отредактировал(а) Kirill Baranov - 21.7.2005, 23:45
PM MAIL   Вверх
Mal Hack
Дата 22.7.2005, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Код

$c = 5;
$pos = 4;
for( ... count ( $ar1 ))
{
if($c == $ar1[$i])
 { continue; }
elseif( $i == $pos )
 { 
  $ar2[] = $c; 
  $ar2[] = $ar1[$i];
  $i++;
 }
else
 { $ar2[] = $ar1[$i] }

}


PM ICQ   Вверх
Kirill Baranov
Дата 22.7.2005, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 30.6.2004

Репутация: -2
Всего: -2



Код

  $ar2[] = $c; 
  $ar2[] = $ar1[$i];


Вопрос, а что это за $ar2[]??? Почему он идет как массив? Сразу PHP срабатывает и говорит "Fatal error: Cannot use [] for reading"

Чаво-то я не понимаю. smile
PM MAIL   Вверх
izOne
Дата 22.7.2005, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 22.8.2003
Где: Украина, Киев

Репутация: 3
Всего: 4



$ar2[] - для добавления эллемента в конец массива

Код

{
if($c == $ar1[$i])
 { continue; }
elseif( $i == $pos )
 { 
  $ar2[] = $c; 
  $ar2[] = $ar1[$i];
 }
else
 { $ar2[] = $ar1[$i] }
  $i++;
}


Это сообщение отредактировал(а) izOne - 22.7.2005, 12:28
--------------------
Успех ждет каждого, но иногда всю жизнь.
PM Jabber   Вверх
Kirill Baranov
Дата 22.7.2005, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 30.6.2004

Репутация: -2
Всего: -2



izOne
Тогда почему у меня на сервере PHP ругается и говорит, что это фатальная ошибка?
PM MAIL   Вверх
Mal Hack
Дата 22.7.2005, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Попробуй, работает 100%.

Код
<pre>
<?php

$c = 5;
$pos = 3;

$ar2 = array();
$ar1 = array( 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 );

for( $i = 0 ; $i < count ( $ar1 ) ; $i++ )
 {
  if( $c == $ar1[$i] && $i == $pos )
   { $ar2[] = $c; }
  elseif( $c == $ar1[$i] )
   { continue; }
  elseif( $i == $pos )
   { 
    $ar2[] = $c; 
    $ar2[] = $ar1[$i];
   }
  else
   { $ar2[] = $ar1[$i]; }
 }

 print_r( $ar2 );
 
?>


PM ICQ   Вверх
Kirill Baranov
Дата 22.7.2005, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 30.6.2004

Репутация: -2
Всего: -2



Mal Hack
Гениально!!!

и последний вопрос... вот эти цифры "1,2,3,4,5,6,7,8,9,10" берутся у меня из переменной...
Код

$test="0,1,2,3,4,5,6,7,8,9,10";

$ex=explode(",",$test);


Если в array засунуть $ex, то получится "Array ( [0] => Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 [10] => 10 ) ) "

То есть PHP воспринимает $ex не как массивы а как одну переменную... Как сделать, чтобы все было нормально, то есть все обрабатывалось как при вводе в саму array цифры (как в твоем скрипте)?
PM MAIL   Вверх
Mal Hack
Дата 22.7.2005, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Сначала получаешь $ar1 explode по строке.
Когда все надо собрать - join( "," , $ar2 );
PM ICQ   Вверх
Kirill Baranov
Дата 22.7.2005, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 30.6.2004

Репутация: -2
Всего: -2



А есть еще один вариант:

Код

<?

$sdvig="*".$sdvig1."*";
$test="start*".$vhod."*end";

$test1=substr($test, 0, strpos($test, $sdvig));
$test2=substr($test, strpos($test, $sdvig)+strlen($sdvig));

$left_el=substr($test1, strrpos($test1, "*")."*")."*";
$right_el="*".substr($test2, 0, strpos($test2, "*")+1);

if ($kyda=="left" && strlen($test1)>5) {
    $test1=str_replace($left_el,"",$test1."*");
    $vhod=$test1.$sdvig.substr($left_el,1).$test2; }
if ($kyda=="right" && strlen($test2)>3) {
    $test2=str_replace($right_el,"","*".$test2);
    $vhod=$test1.$right_el.substr($sdvig,1).$test2; }

$vhod=str_replace("start*","",$vhod);
$vhod=str_replace("*end","",$vhod);

?>

<form name=form1 method=post action=>
<input type=image border=0 name=imageField src=images/form_confirm.jpg width=19 height=19>
строка: <input type=text name=vhod size=50 value='
<? echo $vhod; ?>
'>
<br>
что двигать: <input type=text name=sdvig1 size=10 value='
<? echo $sdvig1; ?>
'>
<br>
куда left/right: <input type=text name=kyda size=10 value='
<? echo $kyda; ?>
'>
</form>


PM MAIL   Вверх
Mal Hack
Дата 22.7.2005, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Kirill Baranov ну я тоже могу извратиться через побитоый сдвиг или что-ть подобное smile
PM ICQ   Вверх
Kirill Baranov
Дата 23.7.2005, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 30.6.2004

Репутация: -2
Всего: -2



Mal Hack
Ну это я так...просто
PM MAIL   Вверх
Kirill Baranov
Дата 23.7.2005, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 30.6.2004

Репутация: -2
Всего: -2



Mal Hack
Твой пример конечно лучше и проще, большое спасибо.
PM MAIL   Вверх
Kirill Baranov
Дата 23.7.2005, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 30.6.2004

Репутация: -2
Всего: -2



Еще один вопрос... как в array запихнуть перменную $test="0,1,2,3,4,5,6,7,8,9,10"; ???
PM MAIL   Вверх
Mal Hack
Дата 23.7.2005, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Ты же сам писал выше:
Цитата(Kirill @ 22.7.2005, 15:01)
$test="0,1,2,3,4,5,6,7,8,9,10";
$ex=explode(",",$test);


PM ICQ   Вверх
Kirill Baranov
Дата 23.7.2005, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 30.6.2004

Репутация: -2
Всего: -2



Mal Hack
Код

Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 10 [9] => 11 [10] => 12 [11] => 13 ) ) 


Вот что получается при коде
Код

$stro4ka="1,2,3,4,5,6,7,8,10,11,12,13";
$ar1=explode(",",$stro4ka);

$c = 5;
$pos = 3;

$ar2 = array();
$ar1 = array($ar1);


То есть получается, что два раза array идет... и в первом array только один элемент 0!!!
PM MAIL   Вверх
Mal Hack
Дата 23.7.2005, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Kirill Baranov а че ты хочешь?
$ar1 = array($ar1); - создает массив, с 1 элементом, где этим нулевым элементом будет уже сгенерированный ранее массив.

PM ICQ   Вверх
Kirill Baranov
Дата 23.7.2005, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 30.6.2004

Репутация: -2
Всего: -2



Mal Hack
Ок, а как тогда в дальше в скрипте это дело использовать? ведь получается 2 array и скрипт получается не срабатывает
PM MAIL   Вверх
Mal Hack
Дата 23.7.2005, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Kirill Baranov блин, ну такие-то вещи надо знать smile

Код
<pre>
<?php
$c = 5;
$pos = 3;

$ar2 = array();
$ar1 = array();

$stro4ka="1,2,3,4,5,6,7,8,10,11,12,13";
$ar1=explode(",",$stro4ka);

for( $i = 0 ; $i < count ( $ar1 ) ; $i++ )
 {
  if( $c == $ar1[$i] && $i == $pos )
   { $ar2[] = $c; }
  elseif( $c == $ar1[$i] )
   { continue; }
  elseif( $i == $pos )
   { 
    $ar2[] = $c; 
    $ar2[] = $ar1[$i];
   }
  else
   { $ar2[] = $ar1[$i]; }
 }
 print_r( $ar2 );
 
?>

PM ICQ   Вверх
Kirill Baranov
Дата 23.7.2005, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 30.6.2004

Репутация: -2
Всего: -2



Mal Hack
А я не знаю smile и в книжках такого нету. Извини, если что...
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0619 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.