Внимание новичкам в PHP. Помогу бесплатно.

safrash

Новичок
Автор оригинала: Фанат

а потом мы продолжим нашу глубокомысленную беседу
PHP:
$new=array("P1","P2","P3");     //объяв массив
$x="P3";
list($s,$d,$f)=$new;   //передаем значения элементов массива переменным
if ($x==$s) {                      //сравниваем с каждой переменной, если истина выводим Эхо
	echo "P3 есть в массиве";
	}
if($x==$d) {
	echo "P3 есть в массиве";
	}
if($x==$f) {
	echo "P3 есть в массиве";
	}
 

Фанат

oncle terrible
Команда форума
это шутка?
скажи, что ты шутишь.
ты действительно считаешь ЭТО работоспособным решением?

не говоря уже о том, что оно не выводит "P3 нет в массиве", если его там не будет, но сама идея здесь чудовищная.

а если в массиве будет не три элемента, а 20?
а если вообще заранее неизвестно, сколько элементов в массиве?
 

safrash

Новичок
а если в массиве будет не три элемента, а 20?
а если вообще заранее неизвестно, сколько элементов в массиве?
PHP:
// найти определенный  элемент массива, если есть, вывести Эхо
$my=array("One", "Two", "Three");
$var="Three";
foreach($my as $key=>$value)
if ($value==$var){
	echo "Переменная $var присутствует в массиве $my";
	}
 

bgm

 
safrash
PHP:
// найти определенный  элемент массива, если есть, вывести Эхо
$my=array("One", "Two", "Three");
$var="Three";
foreach($my as $key=>$value)
if ($value==$var){
	echo "Переменная $var присутствует в массиве $my";
	}
А если у тебя в массиве очень-очень много элементов? Все будешь перебирать по очереди?

P.S. Почитай Вирта "Алгоритмы и структуры данных" - полезно будет. URL: http://lib.mexmat.ru/books/77/
 

safrash

Новичок
Почитай Вирта "Алгоритмы и структуры данных" - полезно будет
Спасибо за совет. Буду читать. Что еще посоветуешь в плане грамотного составления алгоритмов?
 

bgm

 
safrash
Ну, хотя бы, ответить на вопрос, который был задан - "если у тебя в массиве очень-очень много элементов - все будешь перебирать по очереди?"
 

Фанат

oncle terrible
Команда форума
safrash
Слушай, ты в состоянии запомнить задачу с ОДНОГО РАЗА?
Мы так и будем с тобой в прятки играть? Тебе говорят сделать код, который выводит "не найден" - ты делаешь. тебе говорят сделать код, который выводит "найден" - ты снова делаешь.
ОДИН КОД ты можешь написать?
Ты способен написать код, который выводит надпись, в зависимости от того, есть ли в массиве искомый элемент, или нет?

Или твоих способностей хватает только на то, чтобы написать код, который выводит только одну надпись?

где ключ найденного элемента?

что выводит этот твой код? ты его запускал? Он пишет осмысленную фразу?

Такое ощущение, что ты не освоить пхп хочешь, а нам одолжение делаешь. Нате вам код и отвяжитесь.

Я вижу, процесс обучения ты себе представляешь весьма не пыльным. Думать при твоем подходе не требуется вовсе. Думают пускай учителя.
А ты будешь бездумно кропать код, не вникая - ни что он делает, ни даже что он выводит.

В общем, так.
Ты садишься, и пишешь код, который выводит надпись, "искомый элемент в массиве найден, с ключом таким-то" или "искомый элемент в массиве не найден".

ПРОВЕРЯЕШЬ его. на самых разных массивах. пустых, не существующих, с одним элементом, с десятью, с одинаковыми элементами, с разными.

И после этого представляешь свой код сюда.
Если код окажется опять формальным - не учитывающим требований и выводящим всякий бред - пойдёшь искать, действительно, частного репетитора.
 

berkut

Новичок
а разве возможно найти элемент массива по другому??? у меня в цмс есть такой кусок кода, по 70 элементам - и ничё, нормально всё работает, проблем небыло и нет
 

safrash

Новичок
а разве возможно найти элемент массива по другому???
Фанат, видимо, хочет добиться от меня изменения алгоритма поиска данных в массиве. Я скачал книгу Вирта "Алгоритмы и структуры данных" по совету bgm, там описываются алгоритмы поиска данных: линейный поиск, поиск деления пополам, поиск в таблице, прямой поиск строки, также сортировка массивов. Эта книга написана на основе языка Паскаль, так вот не знаю, все эти алгоритмы применимы к нашему языку ООП?
 

Фанат

oncle terrible
Команда форума
о господи.
не хочу я никакого алгоритма.
я хочу, чтобы твоя программа ХОТЯ БЫ РАБОТАЛА! ХОТЬ КАК-ТО!
Выполняла свою функцию. Давала РЕЗУЛЬТАТ.
Ты читать вообще умеешь? Где в моем тексте упоминается слово "алгоритм" хоть раз?
 

safrash

Новичок
Давала РЕЗУЛЬТАТ
У меня заработало
PHP:
$my=array(1=>'PHP', 'Web'=>'HTML', 'System'=>'Unix',2,25300);    //наш массив
$find=5;                  //искомый элемент
$key=array_search($find,$my);      //ключ искомого элемента
if($key==true){
	echo "Искомый элемент $find в массиве найден с ключом $key";
	}else{
		echo "Искомый элемент в массиве не найден";
		}
 

Фанат

oncle terrible
Команда форума
на этом форуме можешь больше не появляться.
ищи репетиторов в другом месте
 

Фанат

oncle terrible
Команда форума
Общение на данном форуме подразумевает некоторый интеллектуальный уровень. Который позволяет, в числе прочего, посетителю читать и воспринимать информацию, которую ему пишут.
У тебя с этим, к сожалению, большие проблемы.

Претензий к тебе никаких. Просто поищи другой форум или репетитора.
До свидания.

-~{}~ 10.04.07 00:03:

Задача твоя состоит в том, чтобы ты чему-то научился. В данном случае - работе с массивами.
Ты же научился только одному - ловко списывать с мануала. Не спорю - полезное качество. Но в данном случае задача перед тобой стоит другая - научиться работать с массивами. И вот как раз ПОНИМАНИЯ массивов у тебя не прибавилось ни на грош. при любой возможности ты пытаешься избавиться от массива и преобразовать его в статические переменные.

НИ ОДНУ поставленную задачу ты так и не смог решить в поставленных самим собой условиях - с ипользованием операторов if, while, циклом for.
Ни в одной задаче ты не смог понять ЛОГИКУ её решения. А заменил её готовой функцией.
При этом непонятно, кого ты хочешь обмануть. Меня? Себя? А зачем ты вообще взялся за изучение, если сам же вместо учебы занимаешься читерством? Я не понимаю. Зачем самому себя обманывать?
 

safrash

Новичок
НИ ОДНУ поставленную задачу ты так и не смог решить в поставленных самим собой условиях - с ипользованием операторов if, while, циклом for.
Принимаю критику, вспомнилась фраза из известного мультика: "Используй всё, что под рукой и не ищи себе другое".
 

Фанат

oncle terrible
Команда форума
Используй. Ради бога.
Только не надо после этого рассказывать, что ты пришёл учиться.
В общем, ты решил задачу? молодец. Свободен.
 

safrash

Новичок
Автор оригинала: Фанат
Используй. Ради бога.
Только не надо после этого рассказывать, что ты пришёл учиться.
В общем, ты решил задачу? молодец. Свободен.
Я вернулся:)
Отсутствовал по уважительной причине
Выполнил перебор массива
PHP:
// Ты садишься, и пишешь код, который выводит надпись, "искомый элемент в массиве найден, с ключом таким-то"
//или "искомый элемент в массиве не найден".

//ПРОВЕРЯЕШЬ его. на самых разных массивах. пустых, не существующих, с одним элементом,
//с десятью, с одинаковыми элементами, с разными.

$my=array('Директор'=>"Иванов",'Бухгалтер'=>"Федоров",'Фирма'=>"Рога",30000);
$find="30000";     
if (reset($my)==true){

	$k1=key($my);
	$e1=current($my);

	$e2=next($my);
	$k2=key($my);

	$e3=next($my);
	$k3=key($my);

	$e4=next($my);
	$k4=key($my);

	switch($find){
		case($e1):
		echo "$find элемент в массиве найден с ключом $k1";
		break;
		case($e2):
		echo "$find элемент в массиве найден с ключом $k2";
		break;
		case($e3):
		echo "$find элемент в массиве найден с ключом $k3";
		break;
		case($e4):
		echo "$find элемент в массиве найден с ключом $k4";
		break;
		default:
		echo "$find элемент в массиве не найден";
	}

}else {
	echo "Массив пуст, заполните его";
	}
Жду реакции Фаната:)
 

zerkms

TDD infected
Команда форума
safrash
ужас.
попробуй расширить свой код до например 1000 элементов в искомом массиве
 

Фанат

oncle terrible
Команда форума
Между прочим, таких "программистов" в пхп большинство.
Пусть не в таких азах, но в вещах чуть посложнее - но они не понимают, что делает код, который они пишут.
И этот тоже. Выучил, что бывает такая штука - циклы. И даже знает ОДИН случай применения циклов. Тот, который был указан в учебнике. Все. на этом познания заканчиваются.
Код КОПИРУЕТСЯ, а не создаётся.
 
Сверху