Добавление элементов в массив

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


$List[] = "pears";
$List[] = "tomatoes";

Если ключ не задан, каждый элемент будет добавлен к существующему мас
сиву и проиндексирован следующим порядковым номером. Если мы добавим
новые элементы к массиву из предыдущего раздела, элементы которого имели
индексы 1, 2 и 3, то у груш (pears) будет индекс 4, а у помидоров (tomatoes) 5.
Когда вы явно задаете индекс, а значение с ним уже существует, то существо
вавшее в этом месте значение будет потеряно и заменено новым:


$List[3] = "pears";
$List[4] = "tomatoes";

Теперь значение элемента с индексом 4 «помидоры», а элемента «апельси
ны» (oranges) больше нет. Я бы посоветовал не указывать ключ при добавле
нии элементов в массив, если, конечно, вы не хотите специально переписать
какиелибо существующие данные. Однако, если в качестве индексов исполь
зуются строки, ключи нужно указывать обязательно, чтобы не потерять зна
чения.

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

$HowMany = count($Array);

  1. Откройте файл soups.php в текстовом редакторе.
  2. После инициализации массива с помощью функции array ( ) добавьте сле
    дующую запись:
  3. $HowMany = count($Soups);
    print ("The array contains $HowMany elements.<P>n");

    Функцией count ( ) будет определено, сколько элементов содержится в мас
    сиве $ Soups. Присвоив это значение переменной, его можно распечатать.

  4. Добавьте в массив три дополнительных элемента.

  5. $Soups["Thursday"] = "Chicken Noodle";
    $Soups["Friday"] = "Tomato";
    $Soups["Saturday"] = "Cream of Broccoli";

  6. Пересчитайте элементы в массиве и распечатайте это значение.
  7. $HowManyNow = count($Soups);
    print ("The array now contains $HowManyNow elements.<P>n");

  8. Сохраните сценарий (листинг 7.2), загрузите его на сервер и протестируй
    те в браузере (рис.).

Листинг 7.2 т Можно напрямую добавлять по одному элементу в массив,
присваивая каждому элементу значение с помощью соответствующего опера
тора. С помощью функции count ( ) удастся узнать, сколько элементов содер
жится в массиве.


1 <HTML>
2 <HEAD>
3 <TITLE>Using Arrays</TITLEx/HEAD>
4 <BODY>
5 <?php
6 $Soups = array(
7 "Monday"=>"Clam Chowder",
8 "Tuesday"=>"White Chicken Chili",
9 "Wednesday"=>"Vegetarian");
10 $HowMany = count($Soups);
11 print ("The array contains $HowMany
elements.<P>n");
12 $Soups["Thursday"] = "Chicken Noodle";
13 $Soups["Friday"] = "Tomato";
14 $Soups["Saturday"] = "Cream of
Broccoli";
15 $HowManyNow = count($Soups);
16 print ("The array now contains
$HowManyNow elemente.<P>n");
17 ?>
18 </BODY>
19 </HTML>

В РНР 4.0 появилась новая функция, позволяющая добавлять один массив
к другому. Эту операцию можно также назвать слиянием или сцеплением мас
сивов. Функция array_merge ( ) вызывается следующим образом:

$NewArray = array_merge ($OneArray, $TwoArray);

Вы можете переписать страницу soups.php с использованием этой функции,
если работаете с сервером, на котором установлен РНР 4.0.

Объединение двух массивов

  1. Откройте файл soups.php в текстовом редакторе, если он еще не открыт.
  2. После инициализации массива $Soups сосчитайте его элементы и напеча
    тайте результат.

  3. $HowMany = count($Soups);
    print ("The $Soups array contains $HowMany elements.<P>n");

      Создайте второй массив, сосчитайте его элементы и также напечатайте
      результат.


    $Soups2 = array(
    "Thursday"=>"Chicken Noodle",
    "Friday"=>"Tomato",
    "Saturday"=>"Cream of Broccoli");
    $HowMany2 = count($Soups2);
    print ("The $Soups2 array contains $HowMany2 elements.<P>n");

  4. Объедините два массива в один.
  5. $TheSoups = array_merge ($Soups, $Soups2);

    Проследите, чтобы массивы были расположены именно в этом порядке
    ($Soups, потом $Soups2), то есть элементы четверга и пятницы должны быть
    добавлены к элементам понедельника среды, а не наоборот.

  6. Сосчитайте элементы нового массива и напечатайте результат.
  7. $HowMany3 = count($TheSoups);
    print ("The $TheSoups array contains
    —$HowMany3 elements.<P>n");

  8. Закройте РНР и HTMLдокумент.
  9. ?></BODYx/HTML>

  10. Сохраните файл (листинг 7.3), загрузите
    его на сервер и протестируйте в браузере
    (рис.).

Листинг 7.3 т Функция Array_merge ( ) явля
ется новой. Это одна из нескольких дополни
тельных функций РНР 4.0, предназначенная для
работы с массивами. Используя массивы, мож
но значительно сэкономить время.


1 <HTML>
2 <HEAD>
3 <TITLE>Using Arrays</TITLEx/HEAD>
4 <BODY>
5 <?php
6 $Soups = array!
7 "Monday"=>"Clam Chowder",
"Tuesday"=>"White Chicken Chili",
8 "Wednesday"=>"Vegetarian"
9 );
10 $HowMany = count($Soups);
11 print ("The $Soups array contains $HowMany elements.<P>n");
12 $Soups2 = array(
13 "Thursday"=>"Chicken Noodle",
14 "Friday"=>"Tomato",
15 "Saturday"=>"Cream of Broccoli"
16 ); .
17 $HowMany2 = count($Soups2);
18 print ("The $Soups2 array contains $HowMany2 elements.<P>n");
19 $TbeSoupe = array_merge ($Soups, $Soups2);
20 $HowMany3 •= count ($TheSoups) ;
21 print ("The $TheSoups array contains .$HowMany3 elements.<P>n");
22 ?> '
23 </BODY>
24 </HTML>

Будьте внимательны при добавлении элементов в массив напрямую. Правильно
это делается так: $Ar ray [] = "Add This"; ияи$Аггау[1] = "Add This";, ане
правильно вот так: $Аггау = " Add This";. Если вы забыли поставить скобки, то
добавленное значение уничтожит существующий массив, превратив его в простую
строку или число.
В РНР 4.0 есть несколько новых функций для работы с массивами. Не все они рас
смотрены в книге. Однако полная информация по этому вопросу содержится в ру
ководстве по языку РНР, которое можно найти на сайте РНР. Будьте внимательны
и не используйте новые функции, присущие только РНР 4.0, если на вашем серве
ре работает РНР 3.x.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: