Поиск
Добавление элементов в массив
Если массив существует, в него можно добавлять дополнительные элементы. Это делается напрямую с помощью оператора присваивания (знак равенства) так же, как присвоение значения строке или числу. При этом можно не зада вать ключ добавленного элемента, но в любом случае при обращении к масси ву необходимы квадратные скобки. Добавляя два новых элемента к списку $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);
- Откройте файл soups.php в текстовом редакторе.
- После инициализации массива с помощью функции array ( ) добавьте сле дующую запись:
- Добавьте в массив три дополнительных элемента.
- Пересчитайте элементы в массиве и распечатайте это значение.
- Сохраните сценарий (листинг 7.2), загрузите его на сервер и протестируй те в браузере (рис.).
$HowMany = count($Soups);
print ("The array contains $HowMany elements.<P>\n");
Функцией count ( ) будет определено, сколько элементов содержится в мас сиве $ Soups. Присвоив это значение переменной, его можно распечатать.
$Soups["Thursday"] = "Chicken Noodle";
$Soups["Friday"] = "Tomato";
$Soups["Saturday"] = "Cream of Broccoli";
$HowManyNow = count($Soups);
print ("The array now contains $HowManyNow elements.<P>\n");
Листинг 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.
Объединение двух массивов
- Откройте файл soups.php в текстовом редакторе, если он еще не открыт.
- После инициализации массива $Soups сосчитайте его элементы и напеча тайте результат.
- Объедините два массива в один.
- Сосчитайте элементы нового массива и напечатайте результат.
- Закройте РНР и HTMLдокумент.
- Сохраните файл (листинг 7.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");
$TheSoups = array_merge ($Soups, $Soups2);
Проследите, чтобы массивы были расположены именно в этом порядке ($Soups, потом $Soups2), то есть элементы четверга и пятницы должны быть добавлены к элементам понедельника среды, а не наоборот.
$HowMany3 = count($TheSoups);
print ("The $TheSoups array contains
—$HowMany3 elements.<P>\n");
?></BODYx/HTML>
Листинг 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>