Php объявить массив


Что такое массив? Если совсем просто — это те же переменные, объединенные под одной «крышей». Или еще одно определение — это переменная с множеством ячеек, т.е. некий такой ящик со множеством отделений, в котором хранятся некие данные.

Давайте сразу разбираться на примерах.

Я сейчас напишу переменную. Какого типа будет эта переменная?

<?php

$data; // Какой тип этой переменной?

?>

У этой переменной будет тип NULL. Хорошо, идем дальше.

Какой тип будет у этой переменной?

<?php

$data = 10; // Тип?

?>

А у этой переменной будет тип INTEGER (число).

А если я напишу так:

<?php

$data[]; // Какой тип?

?>

ArrayА здесь будет тип Array или массив PHP. Квадратные скобки после переменной указывают на ячейку этого массива. Соответственно я могу в этот массив записать значения:

<?php

$data[] = ‘Ser’;

$data[] = ‘root’;

$data[] = ‘54321’;

$data[] = 40;

$data[] = true;

?>


Итак, мы получили массив из пяти (5) ячеек. И сразу же применим функцию, которая считает длину массива PHP или количество ячеек в массиве. Называется она count(), в которую передается имя массива:

<?php

$data[] = ‘Ser’;

$data[] = ‘root’;

$data[] = ‘54321’;

$data[] = 40;

$data[] = true;

echo count($data); // 5

?>

К каждой ячейки можно как-то обращаться. Как? Здесь правило такое: когда php «видит», что ячейке присваивается какое-то значение, то он эту ячейку автоматически нумерует, присваивает ей индекс наибольший следующий за наибольшим. Не забываем, что нумерация начинается с нуля. Соответственно, чтобы мне вывести Ser мне нужно записать так:

<?php

$data[] = ‘Ser’;

$data[] = ‘root’;

$data[] = ‘54321’;

$data[] = 40;

$data[] = true;

echo $data[0]; // Ser

?>

Давайте вернемся к определению массива. Я считаю, что лучше всего определять массив PHP, как множество переменных под одной «крышей». Почему? Обратите внимание, если я напишу вот так: echo getType($data) — то мне вернется тип Array (массив), а если я напишу echo getType($data[0]) — мне вернется String (строка). Т.е. $data[0] — это уже самостоятельная переменная. Вот и получается, что массив PHP — это переменные внутри другой переменной.


Я советую немного попрактиковаться с массивами, т.к. это очень важный и сложный тип данных. В основном, когда появляются какие-то связанные логические данные, например данные о пользователи, то никто не громоздит миллион переменных, сразу все данные записываются в массив. Массивов избегать не нужно, без них вы все равно не обойдетесь.

Теперь давайте рассмотрим несколько полезных функций для массивов. Первая функция, которая выводит структуру массива PHP — это функция print_r(имя массива). Чтобы вывести структуру массива, можно записать так: echo print_t(имя массива). У этой функции есть два недостатка — мы не можем увидеть какие типы данных лежат в массиве и она не показывает длину массива. Например 40 — это строка или число? А ведь может быть, что и то или другое.

Так вот, если нужно более подробно рассмотреть массив, то для этого используется другая функция, которая называется var_dump(имя массива). Это тоже самое, что print_r(), только круче. Что делает функция var_dump()? Она показывает, во первых длину массива PHP, во вторых какой тип данных лежит в каждой ячейки.

Идем дальше. Смотрите, я также могу пронумеровать ячейки массива и в ручную:

<?php

$data[0] = ‘Ser’;

$data[1] = ‘root’;

$data[2] = ‘54321’;

$data[3] = 40;

$data[4] = true;

?>


А могу еще и с единицы нумерацию начать:

<?php

$data[1] = ‘Ser’;

$data[2] = ‘root’;

$data[3] = ‘54321’;

$data[4] = 40;

$data[5] = true;

?>

Тогда вопрос. Посмотрите на этот код:

<?php

$data[11] = ‘Ser’;

$data[2] = ‘root’;

$data[] = ‘54321’;

$data[45] = 40;

$data[] = true;

?>

Какие номера будут у пустых ячеек? PHP читает массив сверху вниз, поэтому, когда он подойдет к первой пустой ячейке, наибольшей будет ячейка под номером 11, соответственно первой пустой ячейке он присвоит номер 12. А вот следующая пустая ячейка будет идти за наибольшим номером 45, соответственно второй пустой ячейке он присвоит номер 46. Вот как это будет выглядеть:

<?php

$data[11] = ‘Ser’;

$data[2] = ‘root’;

$data[12] = ‘54321’;

$data[45] = 40;

$data[46] = true;

?>

Обратите внимание, что эти номера или индексы ни на порядок, ни на количество ячеек не повлияли вообще никак. Т.е. получается, что эти индексы — это просто указатель для нас, чтобы мы могли как-то обратиться к данным в этих ячейках.

То как мы сейчас создавали массивы, так они конечно создаются, но создаются редко. Создавать массив можно и другим путем, с помощью функции array(). Сейчас я создам такой же массив PHP, только другим вариантом, каким и нужно делать:


<?php

$data = array();

?>

Этой конструкцией я создал пустой массив. Там нет ни одной ячейки. Теперь, если я хочу создать массив, который я создавал ранее, мне нужно просто записать через запятую значения в скобки:

<?php

$data = array(‘Ser’, ‘root’, ‘54321’, 40, true);

?>

А что если я теперь захочу пронумеровать ячейки массива PHP со значением ‘Ser’ или любую другую? До этого все было просто — в квадратных скобках мы указывали номер. Как быть здесь? А здесь не сложнее, чем было. Всего лишь нужно написать номер перед ячейкой, например 10 и поставить вот такую стрелку =>. Так как PHP позволяет все это записать более красиво, я cделаю вот так:

<?php

$data = array(

10=>’Ser’,

‘root’,

100=>’54321′,

40,

true

);

?>

Давайте представим, что нам необходимо вывести значения элементов массива. Конечно для этого существуют функции, которые мы дальше будем рассматривать. Но прежде чем к ним переходить, я хочу показать вам парочку способов вывода массива PHP, которые вы наверняка где-нибудь встретите.

Итак, опять же, у нас есть вот такой массив:


<?php

$data[‘name’] = ‘Ser’;

$data[‘login’] = ‘root’;

$data[‘password’] = ‘54321’;

$data[‘age’] = 40′;

?>

Предположим, что у этого массива есть некий указатель или курсор, который изначально стоит на первом элементе, то есть на элементе $data[‘name’] = ‘Ser’. Этот указатель или курсор мы, образно говоря, можем передвигать по всему массиву, вследствие чего, мы получаем или выводим значения этого массива. Функция, которая возвращает указатель элемента массива называется current():

<?php

echo current($data); // Выведет Ser

?>

Далее я хочу передвинуться на следующую ячейку и вывести ее значение. Для этого используется функция next():

<?php

echo next($data); // Выведется root

?>

Теперь, если я хочу вывести текущий указатель на массиве, я использую опять current():

<?php

echo next($data); // Выведется root

echo current($data); // Выведет root

?>


Теперь я опять хочу передвинуться, но назад к значению Ser. Для этого мне надо использовать функцию prev():

<?php

echo prev($data); // Выведет Ser

?>

Если я опять после prev($data) напишу current($data), мне выведется Ser.

Для того, чтобы передвинуться в самый низ массива PHP, нужно использовать функцию end():

<?php

echo end($data); // Выведет 40

?>

После того, как мы оказались в самом низу массива, я хочу сразу подняться на его первый уровень. Для этого я использую функцию reset($data).

Давайте обобщим наш код, чтобы было более понятно:

<?php

$data[‘name’] = ‘Ser’;

$data[‘login’] = ‘root’;

$data[‘password’] = ‘54321’;

$data[‘age’] = 40′;

echo current($data); // Ser

echo next($data); // root

echo current($data); // root

echo prev($data); // Ser

echo current($data); // Ser

echo end($data); // 40

echo reset($data); // Ser

?>

Чтобы получить ключ массива, необходимо написать функцию key($data). Функция выведет ключ того элемента массива, на котором мы в данный момент находимся.

То есть, вот таким образом мы можем перемещаться по массиву в разных направлениях.

Собственно так создаются массивы PHP. В дальнейшем мы с вами будем с ними сталкиваться и рассматривать многие функции, которые облегчают нам работу с этими массивами.

jcover.ru


<?php
$fruits 
= array ( "fruits"  => array ( "a" => "orange",
                                       
"b" => "banana",
                                       
"c" 

=> array ( 1,
                                       
2,
                                       
3,
                                    &nbs.

bsp;                       
6
                                     
),
                  
"holes"   => array (      "first",
                                 &.

r: #DD0000">"third"
                                     
)
                );

// Some examples to address values in the array above 
echo $fruits["holes"][5];    // prints "second"
echo $fruits["fruits"]["a"]; // prints "orange"
unset($fruits["holes"][0]);  // remove "first"

// Create a new multi-dimensional array
$juices["apple"]["green"] = "good"
?>

php.net

Что такое массив PHP?

Начать данную тему хотелось бы с отречённых примеров. Допустим, мы рассматриваем какого-либо человека. У него есть имя, фамилия, адрес, телефон, пол, рост, цвет глаз и так далее. Информацию по всем этим пунктам можно отнести к массиву данных о человеке.

Массив может быть другого типа, без какой-либо конкретики по пунктам. Будет только тема. Допустим, это web-прграммирование. А в качестве элементов будут языки — HTML, CSS, JavaScript, PHP, MySQL. Всего 5 элементов.

Исходя из последнего примера предположим массив:

web-программирование
1. HTML
2. CSS
3. JavaScript
4. PHP
5. MySQL

Теперь смотрим на данный пример и анализируем основные понятия.

Массив в PHP — это набор последовательно расположенных однотипных данных, связанных общей тематикой, число элементов которого фиксировано.

Массив в данном примере будет называться web-программирование.

У каждого элемента есть своё порядковое место, идентификатор.
Индекс (ключ массива) — либо порядковый номер, либо текстовое значение, по которому можно идентифицировать элемент.

Индексами в примере выше будут числовые значение от 1 до 5. При обращении к индексу 2 мы увидим CSS.

Пример массива в PHP

Теперь давайте рассмотрим вышеуказанный пример в синтаксисе PHP, а не русского языка. Допустим массив будет называться короче — web. В квадратных скобках [] будет вставлять индекс.

Давайте рассмотрим простой пример массива, где в значении индексов будут числовые значения, а создавать массив будем так, словно переменным присваиваем значения.

$web[1]=’HTML’;
$web[2]=’CSS’;
$web[3]=’JavaScript’;
$web[4]=’PHP’;
$web[5]=’MySQL’;

$web; // данная переменная содержит массив с 5-ю элементами

// чтобы вывести один из элементов массива достаточно указать индекс в массиве
echo $web[4]; // выведет PHP

Одномерный массив

ИНДЕКСНЫЙ МАССИВ

Выше, с web-программированием, мы рассмотрели как раз пример одномерного массива.
Таким способом он создаётся редко. Он скорее наглядно показывает структуру массива. Чаще прибегают к другому методу.

$web=array(‘HTML’,’CSS’,’JavaScript’,’PHP’,’MySQL’);
echo $web[0]; // выведет ‘HTML’
echo $web[2]; // выведет ‘JavaScript’
echo $web[3]; // выведет ‘PHP’

Если Вы хотите задать значения индекса, то их надо указать следующим образом. Знак => является указателем для присваивания индекса значению или наоборот значению индекс.

$web=array(1=>’HTML’,2=>’CSS’,3=>’JavaScript’,4=>’PHP’,5=>’MySQL’);
echo $web[1]; // HTML
echo $web[2]; // CSS
echo $web[4]; // PHP
В примере отсчёт начинается с 1. Переменная с индексом 0 вследствие этого пустая.

В следующем примере мы не будем указывать индекс.

$day[]=’Понедельник’; // индекс 0
$day[]=’Вторник’; // 1
$day[]=’Среда’; // 2
$day[]=’Четверг’; // 3
$day[]=’Пятница’; // 4
Можно проследить, что происходит последовательное заполнение с нуля.

АССОЦИАТИВНЫЙ МАССИВ

Зачастую возникает потребность в создании буквенного индекса для элемента массива. Как я упоминал выше, такой индекс должен состоять из латинских букв, а имя должно быть заключено в кавычки. Рассмотрим на примере человека.

$user[‘nick’]=’Logic’;
$user[‘name’]=’Павел’;
$user[‘age’]=’25’;
$user[‘sex’]=’Мужской’;

$user; // переменная $user содержит массив с 4-мя элементами с буквенными индексами

// выводим элемент массива, указывая его буквенный индекс
echo $web[‘name’]; // выведет ‘Павел’
Как видите, всё достаточно просто. Только значение индекса закавычиваем.

Двумерный массив

Если Вы пропустили первую часть с Одномерным массивом, то настоятельно советую прочитать.
Если говорить проще, то это массив в массиве. То есть элементов большого массива является другой. Подобные массивы очень тормозят работу скрипта, загружая оперативную память, поэтому для быстрой обработки подобных групп данных созданы Базы Данных ( Что такое База данных? ), но о ней позже. Давайте разберём пример двумерного массива.

 <?php
// массив с названиями Частей Света 
$m = array(‘Европа’,’Азия’,’Африка’,’Америка’,’Австралия и Океания’); 

// массив с названиями Стран
$s = array(‘Россия’,’Украина’,’Беларусь’,’Казахстан’); 

// массив с названиями Столиц 
$с = array(‘Москва’,’Киев’,’Минск’,’Астана’); 

// создаём двумерный массив География 
$geography = array($m, $s, $с);
?>
Во включенных массивах, как Вы обратили внимание, может быть разное количество элементов. Из части про одномерные массивы следовало, что у каждого элемента массива может быть индекс. Так давайте для каждого включённого массива присвоим своё значение.

Для этого расширим последнюю строчку и напишем её следующим образом.

$geography = array(‘Части Света’=>$m, ‘Страны’=>$s, ‘Столицы’=>$с);

Функции работы с массивами php

Foreach — циклическая функция для работы с массивами, в которой количество циклов равно количеству элементов массива.

Имеет следующий вид.

Код PHP

foreach (массив as $ключ=>$значение)
команды;
Ну и сразу пример работы

<?php

// создаём массив со знаменитыми IT
$names["Ритчи"] = "Деннис";
$names["Томпсон"] = "Кен";
$names["Гейтс"] = "Билл";
$names["Джобс"] = "Стив";

foreach ($names as $key => $value) {
echo "$value $key";
}
?>
На экран скрипт выведет

Деннис Ритчи
Кен Томпсон
Билл Гейтс
Стив Джобс
Count — функция, возвращающая количество элементов в массиве.

echo count($names); // в нашем примере с IT вернёт значение 4
Sort — функция, сортирующая элементы массива. Удобна в случае числовых значений индекса.
Arsort — функция, сортирующая элементы массива в обратном порядке.

sort($names); // сортирует по порядку. Удобно если в Индексе числа 
arsort($names); // сортировать в обратном порядке. То есть по индексам элементы будут в порядке 3, 2, 1, 0
Unset — функция, удаляющая элемент массива.

unset($massiv[2]); // удаление элемента массива с индексом 2
unset($massiv); // удаление массива целиком
Array_search — функция поиска в массиве.

Урок 7. Массивы в PHP

Имеет два аргумента. Проще говоря, имеет вил array_search(‘что’, где)

$animals[1]=’dog’;
$animals[2]=’cat’;
$animals[3]=’bird’;
echo array_search(‘cat’,$animals); // выведет индекс элемента — цифру 2
Shuffle — функция, которая перемешивает ключи значений массива.

shuffle($animals); // выстроит элементы в случайном порядке
Спасибо за внимание!

steptosleep.ru

Объявление массива без инициализации

$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><br>";  echo $v['name']." (".$v['age']." years)<p>";  }; 

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

Mitina
Maria (19 years)

Borisova
Alexandra (19 years)


Применять для вывода всего массива оператор «echo» бессмысленно, ибо выводится строка «Array». Выводить можно конкретный элемент массива:

операторы PHP результат
echo $student[‘Mitina’]; Array
echo $student[‘Mitina’][‘name’]; Maria
 foreach ( $student['Mitina'] as $k=>$v ) {  echo "$k : $v<br>"; }; 
name : Maria
age : 19

Попробуем присвоить $student[«Mitina»] = $student[«Borisova»]; и вывести результат:
echo $student[«Mitina»][«name»] :
Alexandra


И присваивание $student[«Mitina»] = $teacher[«Zakharkina»]; работает. Собственно, почему бы и нет?
Вот результат вывода echo $student[«Mitina»][«name»]; :
vvz


А если применить оператор присваивания не к элементу массива, а ко всему массиву? Например, попробуем так:
$student = $teacher;
и выведем результат: echo $student[«Zakharkina»][«age»];
NA

vvz.nw.ru

Как и большинство языков программирования PHP имеет возможности работать с массивами. Массив — это специальный тип переменных, который может содержать множество значений одновременно, доступных через одно имя переменой. Массив очень удобно использовать при работе с большим количеством данных (таких, как записи в базе данных), или групп значений, взаимосвязанных друг с другом.

В данном уроке  вы узнаете:

  • Как работают массивы PHP
  • В чем заключается разница между индексированными и ассоциированными массивами
  • Как создавать массивы в PHP скриптах

Как работают массивы

Как уже упоминалось выше, массив — это переменная, которая может содержать более, чем одно значение. Несколько фактов о массивах PHP:

  • Массив может содержать любое количество значений, и в том числе ни одного значения.
  • Каждое значение в массиве называется элемент.
  • К каждому элементу можно получить доступ с помощью индекса, который может быть числовым или строчным значением. Каждый элемент в массиве имеет свой собственный уникальный индекс.
  • Элемент может хранить любой тип переменных, например, целое число, строку или логическое значение. Можно смешивать типы значений в массиве — например, первый элемент может содержать целое число, второй элемент может содержать строку и так далее.
  • Длина массива — это количество элементов в массиве.
  • Значения элементов массива сами могут быть массивами. Таким образом можно создать многомерный массив.

Преимущества массивов

Массивы PHP имеют множество преимуществ, включая следующие:

  • Ими легко манипулировать. Легко добавить или удалить элементы в массив, так же как и прочитать или изменить значение элемента.
  • Легко работать со множеством значений одновременно. Можно легко организовать цикл по всем элементам массива, читая или изменяя значение каждого элемента.
  • PHP имеет много удобных функций для обработки массивов. Например, вы можете сортировать элементы, искать определенное значение или индекс, объединять массивы вместе.

Индексированные и ассоциированные массивы

PHP работает с двумя типами массивов:

  • Индексированные массивы имеют числовые индексы. Обычно индекс в индексированных массивах начинается с нуля, таким образом первый элемент  имеет индекс 0, второй — индекс 1, и так далее. Обычно такие массивы используются для хранения набора данных в определенном порядке.
  • Ассоциированные массивы имеют строчные индексы. Например, один элемент ассоциированного массива может иметь индекс "name", а другой элемент будет иметь индекс "age". Порядок элементов обычно не важен. Ассоциированные массивы используются в случаях, когда нужно хранить записи данных, как при использовании базы данных.

В действительности PHP не имеет внутренних различий между индексированными и ассоциированными массивами. Можно даже смешивать числовые и строчные индексы в одном массиве, если нужно. Однако проще считать, что индексированные и ассоциированные массивы являются различными типами массивов. Тем более, что много функций PHP разработаны для обработки либо индексированных, либо ассоциированных массивов.

Ассоциированные массивы иногда называются хэш, а их индексы часто называют ключами.

Как создать массив в  PHP

В скрипте PHP создать массив очень просто. Для этого используется конструкция  array():

$myArray = array( значения );  

Чтобы создать индексированный массив, просто перечислите значения внутри скобок, разделяя их запятой. Следующая строка создает индексированный массив с именами режиссеров и присваивает массиву имя $directors:

$directors = array( "Alfred Hitchcock", "Stanley Kubrick", "Martin Scorsese", "Fritz Lang" );  

При создании индексированного массива PHP автоматически назначает индекс каждому элементу. В выше приведенном примере "Alfred Hitchcock" получит индекс 0, "Stanley Kubrick" — индекс 1, и так далее.

Чтобы создать ассоциированный массив, нужно создать пары индекс — значение с помощью оператора =>:

индекс => значение  

Следующий пример создает ассоциированный массив с информацией о фильме и присваивает массиву имя $movie:

 

$movie = array( "title" => "Rear Window",   "director" => "Alfred Hitchcock",   "year" => 1954 );  

Чтобы создать массив без элементов, нужно написать:

$myArray = array();  

Заключение

Мы провели краткий обзор концепции массивов в PHP и разобрали процесс их создания.

ruseller.com

Что такое массив PHP?

Начать данную тему хотелось бы с отречённых примеров. Допустим, мы рассматриваем какого-либо человека. У него есть имя, фамилия, адрес, телефон, пол, рост, цвет глаз и так далее. Информацию по всем этим пунктам можно отнести к массиву данных о человеке.

Массив может быть другого типа, без какой-либо конкретики по пунктам. Будет только тема. Допустим, это web-прграммирование. А в качестве элементов будут языки — HTML, CSS, JavaScript, PHP, MySQL. Всего 5 элементов.

Исходя из последнего примера предположим массив:

web-программирование
1. HTML
2. CSS
3. JavaScript
4. PHP
5. MySQL

Теперь смотрим на данный пример и анализируем основные понятия.

Массив в PHP — это набор последовательно расположенных однотипных данных, связанных общей тематикой, число элементов которого фиксировано.

Массив в данном примере будет называться web-программирование.

У каждого элемента есть своё порядковое место, идентификатор.
Индекс (ключ массива) — либо порядковый номер, либо текстовое значение, по которому можно идентифицировать элемент.

Индексами в примере выше будут числовые значение от 1 до 5. При обращении к индексу 2 мы увидим CSS.

Пример массива в PHP

Теперь давайте рассмотрим вышеуказанный пример в синтаксисе PHP, а не русского языка. Допустим массив будет называться короче — web. В квадратных скобках [] будет вставлять индекс.

Давайте рассмотрим простой пример массива, где в значении индексов будут числовые значения, а создавать массив будем так, словно переменным присваиваем значения.

$web[1]='HTML';  $web[2]='CSS';  $web[3]='JavaScript';  $web[4]='PHP';  $web[5]='MySQL';    $web; // данная переменная содержит массив с 5-ю элементами    // чтобы вывести один из элементов массива достаточно указать индекс в массиве  echo $web[4]; // выведет PHP

Одномерный массив

ИНДЕКСНЫЙ МАССИВ

Выше, с web-программированием, мы рассмотрели как раз пример одномерного массива.
Таким способом он создаётся редко. Он скорее наглядно показывает структуру массива. Чаще прибегают к другому методу.

$web=array('HTML','CSS','JavaScript','PHP','MySQL');  echo $web[0]; // выведет 'HTML'  echo $web[2]; // выведет 'JavaScript'  echo $web[3]; // выведет 'PHP'

Если Вы хотите задать значения индекса, то их надо указать следующим образом. Знак => является указателем для присваивания индекса значению или наоборот значению индекс.

$web=array(1=>'HTML',2=>'CSS',3=>'JavaScript',4=>'PHP',5=>'MySQL');  echo $web[1]; // HTML  echo $web[2]; // CSS  echo $web[4]; // PHP

В примере отсчёт начинается с 1. Переменная с индексом 0 вследствие этого пустая.

В следующем примере мы не будем указывать индекс.

$day[]='Понедельник'; // индекс 0  $day[]='Вторник'; // 1  $day[]='Среда'; // 2  $day[]='Четверг'; // 3  $day[]='Пятница'; // 4

Можно проследить, что происходит последовательное заполнение с нуля.

АССОЦИАТИВНЫЙ МАССИВ

Зачастую возникает потребность в создании буквенного индекса для элемента массива. Как я упоминал выше, такой индекс должен состоять из латинских букв, а имя должно быть заключено в кавычки. Рассмотрим на примере человека.

$user['nick']='Logic';  $user['name']='Павел';  $user['age']='25';  $user['sex']='Мужской';    $user; // переменная $user содержит массив с 4-мя элементами с буквенными индексами    // выводим элемент массива, указывая его буквенный индекс  echo $web['name']; // выведет 'Павел'

Как видите, всё достаточно просто. Только значение индекса закавычиваем.

Двумерный массив

Если Вы пропустили первую часть с Одномерным массивом, то настоятельно советую прочитать.
Если говорить проще, то это массив в массиве. То есть элементов большого массива является другой. Подобные массивы очень тормозят работу скрипта, загружая оперативную память, поэтому для быстрой обработки подобных групп данных созданы Базы Данных ( Что такое База данных? ), но о ней позже. Давайте разберём пример двумерного массива.

 <?php  // массив с названиями Частей Света   $m = array('Европа','Азия','Африка','Америка','Австралия и Океания');     // массив с названиями Стран  $s = array('Россия','Украина','Беларусь','Казахстан');     // массив с названиями Столиц   $с = array('Москва','Киев','Минск','Астана');     // создаём двумерный массив География   $geography = array($m, $s, $с);  ?>

Во включенных массивах, как Вы обратили внимание, может быть разное количество элементов. Из части про одномерные массивы следовало, что у каждого элемента массива может быть индекс. Так давайте для каждого включённого массива присвоим своё значение.

Для этого расширим последнюю строчку и напишем её следующим образом.

$geography = array('Части Света'=>$m, 'Страны'=>$s, 'Столицы'=>$с);

Функции работы с массивами php

Foreach — циклическая функция для работы с массивами, в которой количество циклов равно количеству элементов массива.

Имеет следующий вид. Код PHP

foreach (массив as $ключ=>$значение)  команды;

Ну и сразу пример работы

<?php    // создаём массив со знаменитыми IT  $names["Ритчи"] = "Деннис";  $names["Томпсон"] = "Кен";  $names["Гейтс"] = "Билл";  $names["Джобс"] = "Стив";    foreach ($names as $key => $value) {  echo "$value $key";  }  ?>

На экран скрипт выведет

Деннис Ритчи
Кен Томпсон
Билл Гейтс
Стив Джобс
Count — функция, возвращающая количество элементов в массиве.

echo count($names); // в нашем примере с IT вернёт значение 4

Sort — функция, сортирующая элементы массива. Удобна в случае числовых значений индекса.
Arsort — функция, сортирующая элементы массива в обратном порядке.

sort($names); // сортирует по порядку. Удобно если в Индексе числа   arsort($names); // сортировать в обратном порядке. То есть по индексам элементы будут в порядке 3, 2, 1, 0

Unset — функция, удаляющая элемент массива.

unset($massiv[2]); // удаление элемента массива с индексом 2  unset($massiv); // удаление массива целиком

Array_search — функция поиска в массиве. Имеет два аргумента. Проще говоря, имеет вил array_search(‘что’, где)

$animals[1]='dog';  $animals[2]='cat';  $animals[3]='bird';  echo array_search('cat',$animals); // выведет индекс элемента - цифру 2

Shuffle — функция, которая перемешивает ключи значений массива.

shuffle($animals); // выстроит элементы в случайном порядке

Спасибо за внимание!

tradebenefit.ru

Двумерные массивы

Двумерный массив — массив, который в качестве значений хранит в себе другие массивы. Рассмотрим создание двумерного массива с помощью конструктора array():

  $flowers = array( array("розы", 100 , 15),   array("тюльпаны", 60 , 25),   array("орхидеи", 180 , 7)    );   

Массив $flowers содержит три массива. Как вы помните, для доступа к элементам одномерного массива надо указывать имя массива и ключ. То же самое верно и в отношении двумерных массивов, с одним исключением: каждый элемент имеет два ключа: первый для выбора строки, второй для выбора столбца.

Чтобы вывести элементы этого массива можно вручную прописать доступ к каждому из них, но лучше воспользоваться вложенными циклами:

  <?php  $flowers = array( array("розы", 100 , 15),   array("тюльпаны", 60 , 25),   array("орхидеи", 180 , 7)    );     echo "<h1>Ручной доступ к элементам</h1>";    echo $flowers[0][0]." цена ".$flowers[0][1]." количество ".$flowers[0][2]."<br>";  echo $flowers[1][0]." цена ".$flowers[1][1]." количество ".$flowers[1][2]."<br>";  echo $flowers[2][0]." цена ".$flowers[2][1]." количество ".$flowers[2][2]."<br>";    echo "<h1>Использование циклов для вывода элементов</h1>";    echo "<ol>";  for ($row = 0; $row < 3; $row++) {   echo "<li><b>Номер строки $row</b>";   echo "<ul>";     for ($col = 0; $col < 3; $col++) {   echo "<li>".$flowers[$row][$col]."</li>";   }     echo "</ul>";   echo "</li>";  }  echo "</ol>";  ?>  

Вместо номеров столбцов (индексы, присвоенные им по умолчанию) можно задавать им нужные ключи. Для этой цели используются ассоциативные массивы. Следующий массив будет хранить те же данные, но уже с использованием ключей для именования столбцов с информацией:

  $flowers = array( array( "Название" => "розы",    "Цена" => 100,   "Количество" => 15    ),   array( "Название" => "тюльпаны",    "Цена" => 60,   "Количество" => 25,   ),   array( "Название" => "орхидеи",    "Цена" => 180,   "Количество" => 7    )   );  

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

Мы можем перебрать с помощью цикла for только дочерние массивы. Так как они, в свою очередь, являются ассоциативными, то для перебора их элементов нужно воспользоваться циклом foreach, или перебрать элементы вручную:

  <?php  $flowers = array( array( "Название" => "розы",    "Цена" => 100,   "Количество" => 15    ),   array( "Название" => "тюльпаны",    "Цена" => 60,   "Количество" => 25,   ),   array( "Название" => "орхидеи",    "Цена" => 180,   "Количество" => 7    )   );    echo "<h1>Ручной доступ к элементам ассоциативного массива</h1>";    for ($row = 0; $row < 3; $row++) {   echo $flowers[$row]["Название"]." цена ".$flowers[$row]["Цена"]  	 ." количество ".$flowers[$row]["Количество"];   echo "<br>";  }    echo "<h1>Использование цикла foreach для доступа к элементам</h1>";    echo "<ol>";  for ($row = 0; $row < 3; $row++) {   echo "<li><b>Номер строки $row</b>";   echo "<ul>";     foreach($flowers[$row] as $key => $value) {   echo "<li>".$value."</li>";   }     echo "</ul>";   echo "</li>";  }  echo "</ol>";  ?>  

Необязательно использовать для создания двумерного массива конструктор array(), можно воспользоваться и коротким синтаксисом — квадратными скобками:

  $flowers = [ [ "Название" => "розы",    "Цена" => 100,   "Количество" => 15    ],   [ "Название" => "тюльпаны",    "Цена" => 60,   "Количество" => 25,   ],   [ "Название" => "орхидеи",    "Цена" => 180,   "Количество" => 7    ]   ];  

Трёхмерные массивы

Не обязательно ограничиваться только двумя измерениями: так же, как элементы массива могут содержать массивы, эти массивы, в свою очередь, могут содержать новые массивы.

Трёхмерный массив характеризует ширину, высоту и глубину. Если представлять двумерный массив в виде таблицы, то трёхмерный добавляет к этой таблице слои. Каждый элемент такого массива будет ссылаться на слой, строку и столбец.

Если немного модифицировать наш массив с цветами, то можно переделать его в трёхмерный. В коде, представленном ниже видно, что трёхмерный массив — массив, содержащий массив массивов:

  $flowers = [ [ ["розы", 100 , 15],    ["тюльпаны", 60 , 25],   ["орхидеи", 180 , 7]    ],   [ ["розы", 100 , 15],    ["тюльпаны", 60 , 25],   ["орхидеи", 180 , 7],   ],   [ ["розы", 100 , 15],    ["тюльпаны", 60 , 25],   ["орхидеи", 180 , 7]    ]   ];  

Поскольку этот массив содержит только числовые индексы, мы можем использовать для его отображения вложенные циклы:

  <?php  $flowers = [ [ ["розы", 100 , 15],    ["тюльпаны", 60 , 25],   ["орхидеи", 180 , 7]    ],   [ ["розы", 100 , 15],    ["тюльпаны", 60 , 25],   ["орхидеи", 180 , 7],   ],   [ ["розы", 100 , 15],    ["тюльпаны", 60 , 25],   ["орхидеи", 180 , 7]    ]   ];  		   echo "<ul>";  for ( $layer = 0; $layer < 3; $layer++ )  {   echo "<li>Номер слоя $layer";   echo "<ul>";      for ( $row = 0; $row < 3; $row++ )   {   echo "<li>Номер строки $row";   echo "<ul>";      for ( $col = 0; $col < 3; $col++ )   {   echo "<li>".$flowers[$layer][$row][$col]."</li>";   }   echo "</ul>";   echo "</li>";   }   echo "</ul>";   echo "</li>";  }   echo "</ul>";  ?>  

puzzleweb.ru

Как вывести отдельный элемент массива

Итак, массив месяцев мы составили и даже научились смотреть на него функцией var_dump. Однако, полезного пока мало, так как var_dump используется для отладки кода и выводит весь массив целиком.

Предположим, мы хотим вывести на экран среду.

Делается это так: нужно после переменной массива (в нашем случае $a) написать квадратные скобки [ ], а в них указать порядковый номер элемента, который мы хотим вывести: $a[3]. Казалось бы, что порядковый номер среды — это 3, но это не так. Потому что в программировании нумерация начинается с нуля. Поэтому 0 — это понедельник, 1 — это вторник, а 2 — это среда.

Посмотрите и повторите пример:

Ассоциативный массив

Чтобы обратиться к нужному элементу массива, мы писали в квадратных скобках его порядковый номер (нумерация начинается с нуля, если вы уже забыли). Эти порядковые номера называются ключами массива. То есть мы получали значение элемента массива по его ключу.

В нашем случае PHP сам определял ключи для элементов — это были их порядковые номера. Иногда это может оказаться неудобным — мы хотим вывести на экран название третьего дня недели (среду), а должны писать в квадратных скобках цифру 2.

Поэтому в PHP можно указать ключи в явном виде – так, как нам нужно. Сделаем так, чтобы понедельник имел ключ 1, а не ноль, как было раньше (и всем остальным дням прибавим единицу):

Синтаксис здесь такой: ключ, затем идет стрелка =>, а потом значение.

Ключи не обязательно должны быть числами, они могут быть и строками. Сделаем массив, в котором ключами будут имена работников, а элементами — их зарплаты:

Узнаем зарплату Васи:

Массивы, у которых явно указаны ключи, называются ассоциативными.

Хитрость с ключами

Когда мы делали ассоциативный массив дней недели, нам приходилось расставлять все ключи вручную. И все для того, чтобы нумерация началась не с нуля, а с единицы. Это было немного неудобно.

Напомню вам этот массив:

На самом деле нет необходимости расставлять ключи всем элементам — достаточно только первому элементу поставить ключ 1.

Если у второго элемента не будет ключа, PHP поставит его автоматически, причем следующий по порядку.

А следующим номером будет как раз-таки число 2, так как предыдущий элемент имел ключ 1 (неважно, что мы сами его поставили, а не PHP автоматически).

Давайте поправим наш массив:

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

Как еще можно создать массив

Объявление массива с помощью команды [] не является единственным способом его создания.

Можно просто присвоить значения элементам массива, не объявляя его через array (PHP нас поймет и сам создаст массив):

Естественно, ключи могут быть не только числовыми, но и текстовыми:

Кроме того, можно сделать так, что PHP сам добавит ключи (начиная с нуля и так далее). Для этого мы оставим квадратные скобки пустыми: $a[] = 1, а PHP сам добавит ключ. Пример:

Все способы создания массива

Итак, повторим все способы создания массива:

Многомерный массив

Элементы массива могут быть не только строками и числами, но и массивами. То есть у нас получится массив массивов или многомерный массив.

Давайте сделаем массив студентов $students, который будет содержать два подмассива: студенты мужского пола и женского:

Чтобы вывести какой-либо элемент из многомерного массива следует писать уже не одну пару [ ], а две: $a[‘boys’][0] – так мы выведем ‘Коля’.

code.mu


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.