Консультация № 138829
31.05.2008, 22:00
0.00 руб.
0 2 2
Здравствуйте!

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

Заранне благодарен!

Обсуждение

Неизвестный
01.06.2008, 00:03
общий
это ответ
Здравствуйте, Гальцов Андрей!

<b><u>Ссылки: </u></b>
<a href=http://php.mirror.camelnetwork.com/manual/ru/language.types.array.php>php.mirror.camelnetwork.com</a>
<a href=http://kurepin.ru/php/array/>kurepin.ru</a>
<a href=http://vvz.nw.ru/Lessons/php/arrays.php>vvz.nw.ru</a>
В PHP можно определять т.н. ассоциативные массивы, представляющие собой наборы пар ключ - значение. В отличие от многих других языков, где "ключами" (индексами) могут быть только целые неотрицательные числа, в PHP ключ может быть строкой (а может - и целым неотрицательным числом).

Объявление массива без инициализации
$data = array();

Объявление массива с инициализацией
Пусть, например, мы хотим хранить в ассоциативном массиве $textOptions некие параметры шрифта, а в массиве $days с целочисленными ключами - названия дней недели. Их можно объявить с инициализацией ряда элементов, а потом при необходимости добавлять новые элементы.

$textOptions = array( ‘font-family‘=>‘Arial‘ , ‘color‘=>‘red‘ , ‘font-size‘=>12 );

$days = array( 0=>‘Monday‘ , 1=>‘Tuesday‘);
или
$days = array( ‘Monday‘,‘Tuesday‘);

Добавление элементов в массив
В определенные выше массивы можно добавлять элементы:
$textOptions[‘background-color‘] = ‘#EEEEEE‘;
$textOptions[‘border‘] = ‘green dotted 3px‘;

$days[2] = ‘Wednesday‘;
$days[3] = ‘Thursday‘;

В случае массива с целочисленными ключами ключи можно не указывать:

$days[] = ‘Friday‘;
$days[] = ‘Suturday‘;
$days[] = ‘Sunday‘;

При этом значения ключам присваиваются последовательно, начиная со значения, на единицу большего уже существующего максимального ключа.
Примеры и примечания
Для перебора всех элементов массива очень удобно использовать оператор foreach. Определим такие (кстати, многомерные) массивы:

$student[‘Mitina‘] = array(‘name‘=>"Maria", ‘age‘=>19);
$student[‘Borisova‘] = array(‘name‘=>"Alexandra", ‘age‘=>19);
$teacher[‘Zakharkina‘] = array(‘name‘=>"vvz", ‘age‘=>‘NA‘);
$teacher[‘Pankratov‘] = array(‘name‘=>"pan", ‘age‘=>‘NA‘);

и выведем значения с помощью операторов

foreach ( $student as $k=>$v )
{
echo "<b>$k</b>
";
echo $v[‘name‘]." (".$v[‘age‘]." years)<p>";
};

Вот результат:

Mitina
Maria (19 years)

Borisova
Alexandra (19 years)<p><fieldset style=‘background-color:#EFEFEF; width:80%; border:#777777 1px solid; padding:10px;‘ class=fieldset><font color=#777777><i>Исправлено по просьбе отвечающего</i>
-----
</font><font color=#777777 size=1><b>• Отредактировал: <a href=http://rusfaq.ru/info/user/8032 target=_blank>Устинов С.Е.</a></b> (Профессионал)
<b>• Дата редактирования:</b> 01.06.2008, 00:13 (MCK)</font></fieldset>
Неизвестный
02.06.2008, 08:10
общий
это ответ
Здравствуйте, Гальцов Андрей!
создать можно так
$arr=array(1,2,3,4,5);
php не выдвигает жестких требований к переменным, как, например, delphi, и массив можно предварительно не объявлять, а просто заполнить очередной элемент массива (например, так: $arr[‘dlja‘][‘primera‘]=‘1234567890‘; )

>сделать ввод элментов с клавиатуры
дело в том, что php отрабатывает на сервере. Поэтому для передачи текста с клавиатуры надо сделать обычную html-страничку с полями ввода. action тэга form этой страницы должен указывать на php скрипт.

>отсортировать его
на помощь придут функции
sort($arr) - обычная сортировка по возрастанию
rsort($arr) - сортировка по убыванию
asort($arr) - сортировка ассоциативного массива по возрастанию
arsort($arr) - cортировка ассоциативного массива по убыванию
natsort($arr) - "естественная" сортировка массива

еще полезно посмотреть http://www.php.net/manual/ru/
Форма ответа