Перейти к содержимому



Вопрос по создание ФУНКЦИИ

#1 Banderas

Banderas
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1
0

Отправлено 26 Июнь 2009 - 18:24

Хочу написать функцию, которая будет выводить или значение($value) или ключ($key). Не знаю как встроить её вот сюда:
$arr = array(
	'one'   => '1',
	'two'   => '2',
	'three' => '3');

foreach ($arr as $key => $value) {
	echo htmlspecialchars($key)."\n";
}
Хочу функцию типа:
function key_or_val($what, $arr)
{
	foreach ($arr as $key => $value) {
	  echo htmlspecialchars($what)."\n";
	}
}
Вместо $what пишешь $key или $value и оно автоматически вставляется в 4 строку (там где echo).

 

 

  • 0


#2 v1ex

v1ex
  • Пользователь
  • 225 сообщений
  • Репутация: 0

Отправлено 26 Июнь 2009 - 20:07

Ужастно объяснил, не понятно чего ты хочешь :)
  • 0

#3 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 27 Июнь 2009 - 11:45

Banderas, и вправду непонятно... Ты хочешь вписать значение и прогнать поиск по ключам и значениям и найти запись? Тогда так.

function getArrayValue($param, $array)
{
	foreach ($array as $key => $value)
		if($param == $key || $param == $value) return "{$key}  -  {$value}";
}

Пример использования
$assocArray = array(
						 "one" => "Единица",
						 "two" => "Двойка",
						 "three" => "Тройка",
					  );

echo getArrayValue("two", $assocArray); // выведет "two -  Двойка"
echo getArrayValue("Тройка", $assocArray); // выведет "three -  Тройка"

$numberArray = array(
							   "Нуль",
							   "Единица",
							   "Двойка",
							   "Тройка",
					  );

echo getArrayValue(1, $assocArray); // выведет "1 -  Единица"
echo getArrayValue("Двойка", $assocArray); // выведет "2 -  Двойка"

  • 0

#4 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 28 Июнь 2009 - 08:08

Почти, типа такого:
$arr = array(
	"one" => "Единица",
	"two" => "Двойка",
	"three" => "Тройка",
);

function kOrv($korv, $arr)
{
	if (!isset($korv && $arr)) {
		echo 'Вы не ввели данные';
		exit;
	}
	else {
		while (list($key, $value) = each($a)) {
			if (($korv == $key) || ($korv == $value)) {
				echo "$key";
				echo "$value";
			}
		}
	}
}

echo kOrv($key, $arr);

Приеду доработаю, ато выгоняют :lol:
  • 0


#5 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 28 Июнь 2009 - 10:33

Banderas, твоя функция нерабочая, в чилу парочки грамматических ошибок. Я же сделал тоже самоей, но только я не в самой функции печатаю строку, а возвращаю её из функции. ИМХО это повышает функциональность. С помощью моей функции ты не только может вывести на экран ключ - значение, но и поработать потом с ними. Например тебе захочется разобрать строку по разделителю и сделать ещё одно сопоставление с БД и так далее...
  • 0


Оформление форума – IPBSkins.ru