Приветствую Вас ГостьЧетверг, 06.02.2025, 00:50

Light Midnight Inc.


Каталог статей

Главная » Статьи » Программирование » PHP/JavaScripts

Массивы в примерах (2)

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

В качестве элементов массива могут выступать не только скалярные величины, но и сами массивы. В этом случае получаются так называемые многомерные массивы.

Пусть необходимо получить такую таблицу:

ИмяПрофессияЗарплата
ВасяСлесарь2500
МишаСтроитель3000
АндрейШофер2700

Для этого создадим двумерный массив:

  $arr = array( array(‘Вася’‘слесарь’2500 ), 
            array(
‘Миша’,’строитель’3000), 
            array(
‘Андрей’‘шофер’2700)); 
?>

Теперь таблицу можно вывести при помощи следующего кода:

  for ($i 0$i 3$i++) 
  { 
    for (
$j=0$j <3$j++) 
    { 
       echo 
' | '.$arr[$i][$j]; 
    } 
    echo 
'
'

  } 
?>

Результат:

| Вася | слесарь | 2500 
| Миша | строитель | 3000 
| Андрей | шофер | 2700

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

Операции над массивами (сборник рецептов)

1) Определения числа элементов в массиве count():

Создадим массив $name:

  $name = array('Boss''Lentin''NAV''Endless''Dragons''SiLeNT''Doctor''Lynx'); 
?>

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

  echo ‘Число элементов в массиве .count($name); 
?>

Результат:

Число элементов в массиве – 8

2) Объединение массивов

a) Создадим два ассоциативных массива $a и $b:

  $a = array("a” => ”aa”"b” => "bb”); 
  
$b = array("c” => ”cc”"d” => "dd”); 
?>

Пусть необходимо создать массив $c, которые будет содержать как элементы массива $a так и массива $b:

  $a = array("a"=>"aa""x"=>"xx"); 
  
$b = array("c"=>"cc""d"=>"dd"); 
  
$c $a $b
  echo 
"

"
  
print_r($c); 
  echo 
"
"
?>

Результат:

Array 

    [a] => aa 
    [x] => xx 
    [c] => cc 
    [d] => dd 
)

b) Создадим два числовых массива $a и $b:

  $a = array(10,20); 
  
$b = array(100,200,300,400,500); 
?>

Их уже не получится объединить при помощи конструкции $c = $a + $b;. Для их объединения потребуется воспользоваться функцией array_merge():

  $c array_merge($a,$b); 
?>

3) Сортировка массива

Воспользуемся массивом $name:

  $name = array('Boss''Lentin''NAV''Endless''Dragons''SiLeNT''Doctor''Lynx'); 
?>

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

  sort($name); 
  echo 
"

"
  
print_r($name); 
  echo 
"
"
?>

Результат:

Array 

    [0] => Boss 
    [1] => Doctor 
    [2] => Dragons 
    [3] => Endless 
    [4] => Lentin 
    [5] => Lynx 
    [6] => NAV 
    [7] => SiLeNT 
)

Пусть необходимо из массива $name выбрать самый короткий элемент(у которого наименьшее количество символов), в этом случае можно воспользоваться кодом:

  $name = array('Boss''Lentin''NAV''Endless''Dragons''SiLeNT''Doctor''Lynx'); 
  
$min strlen($name[0]); 
  
$nam $name[0]; 
  for (
$i=1$i count($name); $i++) 
  { 
    
$len strlen($name[$i]); 
    if (
$len $min
    { 
      
$nam $name[$i]; 
      
$min strlen($nam); 
    } 
  } 
  echo 
'Наименьшая длина - '.$nam
?>

4) Перемещение внутри массива

Создадим массив $num:

  $num = array(1,2,3,4,5,6,7,8,9,10); 
?>

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

  $end end($num); 
  While (
$end
  { 
    echo 
$end.' - '
    
$end prev($num); 
  } 
?>

Результат:

10 - 9 - 8 - 7 - 6 - 5 - 4 - 3 - 2 – 1

Приведённый выше код можно модифицировать:

  $num range(1,10); 
  
print_r (array_reverse($num)); 
?>

Функция range(1,10) создает массив (1,2,3,4,5,6,7,8,9,10) со случайным расположением элементов. Функцияarray_reverse() принимает массив и располагает элементы в обратном порядке (10,9,8,7,6,5,4,3,2,1)

Функции next()each() перемещают указатель на один элемент вперед. Функция reset() возвращает указатель на 1 элемент в массиве. Воспользуемся массивом $num:

  $num = array(1,2,3,4,5,6,7,8,9,10); 
?>

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

  $i=0//Индекс 1 элемента 
  
while ($i count($num)) 
  { 
    echo 
$num[$i].' '
    
$i++; 
    
//Проверка если $i равен числу элементов в массиве 
    //тогда выводим последний элемент и возвращаем указатель 
    
if ($num[$i] == count($num)) 
    { 
      echo 
$num[$i]; 
      
reset ($num); 
      echo 
'
'
."Конец массива"
      exit(); 
    } 
  } 
?>

Результат:

1 2 3 4 5 6 7 8 9 10 
Конец массива

5) Перемешивание элементов в массиве shuffle()

Функция shuffle() перемешивает значения в массиве, и если массив ассоциативный то возвращает его как список:

  $a = array(43,'PHP',4,57,'Boss',90); 
  
shuffle($a); 
  foreach (
$a as $n) echo "$n "
?>

6) Случайный элемент массива

Если имеется готовый массив, из которого необходимо вывести один случайный элемент, для этого необязательно перемешивать весь массив при помощи функции shuffle(), достаточно сгенерировать случайный индекс массива:

  // Определяем массив 
  
$arr = array(12345678910); 
  
// Генерируем случайный индекс массива 
  
$index rand(0,count($arr) - 1); 
  
// Выводим случайный элемент массива 
  
echo $arr[$index]; 
?>

7) Получение части массива array_slice()

Создадим массив $a

  $a = array(‘a’,’b’,’3’,’5’,’f’); 
?>

Получить часть массива можно при помощи следующего кода:

  $b array_slice($a2// вывод 3, 5, f 
  
$b array_slice($a,0,3// a, b, 3 
?> 

8) Сериализация массива

Функции serialize() и unserialize() позволяют осуществлять упаковку и распаковку, соответственно, массивов и объектов.

Замечание

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

  $poll[0] = 23
  
$poll[1] = 45
  
$poll[2] = 34
  
$poll[3] = 2
  
$poll[4] = 12
  
// Упаковываем массив в строку 
  
$str serialize($poll); 
  echo 
$str."
"

  
// Извлекаем массив из строки 
  
$arr unserialize($str); 
  
print_r($arr); 
?>

Результат:

a:5:{i:0;i:23;i:1;i:45;i:2;i:34;i:3;i:2;i:4;i:12;} 
Array 

    [0] => 23 
    [1] => 45 
    [2] => 34 
    [3] => 2 
    [4] => 12 
)

Категория: PHP/JavaScripts | Добавил: Cromartie (31.01.2013)
Просмотров: 504 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Наш опрос
Оцените мой сайт
Всего ответов: 543
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Реклама
Cheсking
Часы
Мини-чат
200
Друзья Сайта
  • Light Midnight - Ваша Еда
  • Light Midnight - Anim as life style
  • Поиск