PHP статьи и уроки PHP для начинающих. Уроки по PHP.
Работа с массивами, графикой, звуком, базами данных.
Работа с протоколами на сервере HTTP и FTP.
Приветствую Вас, Гость!

Меню сайта
Категории каталога
Общие вопросы
Общие вопросы программирования на PHP
PHP в примерах
рассматриваются конкретные практические примеры скриптов PHP
Безопасность сайта
При создании сайта необходимо защитить его от несанкционированного доступа
Интересное:
Реклама:
Смотрю "Записки о MacBook и Mac OS", в блоге gamedev программиста.
Главная » Статьи » Уроки » Общие вопросы

Некоторые особенности работы с массивами

Преобразование в массив (тип array)

Для любого из типов: integer, float, string, boolean и resource, если вы преобразуете значение в массив, вы получите массив с одним элементом (с индексом 0), являющимся скалярным значением, с которого вы начали.

Если вы преобразуете в массив объект (object), вы получите в качестве элементов массива свойства (переменные-члены) этого объекта. Ключами будут имена переменных-членов.

Если вы преобразуете в массив значение NULL, вы получите пустой массив.

Сравнение массивов

Массивы можно сравнивать при помощи функции array_diff() и операторов массивов:

Операторы, работающие с массивами:

Пример Название Результат
$a + $b Объединение Объединение массива $a и массива $b.
$a == $b Равно TRUEв случае, если $a и $b содержат одни и те же элементы.
$a === $b Тождественно равно TRUE в случае, если $a и $b содержат одни и те же элементы в том же самом порядке.
$a != $b Не равно TRUE если массив $a не равен массиву $b.
$a <> $b Не равно TRUE если массив $a не равен массиву $b.
$a !== $b Тождественно не равно TRUE если массив $a не равен тождественно массиву $b.

Пример сравнения массивов:

<?php
$a 
= array("apple""banana");
$b = array(=> "banana""0" => "apple");

var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)
?>

Некоторы полезные практические примеры по работе с массивами

<?php
// это
$a = array( 'color' => 'red',
            
'taste' => 'sweet',
            
'shape' => 'round',
            
'name'  => 'apple',
                       
4        // ключом будет 0
          
);

// полностью соответствует
$a['color'] = 'red';
$a['taste'] = 'sweet';
$a['shape'] = 'round';
$a['name']  = 'apple';
$a[]        = 4;        // ключом будет 0

$b[] = 'a';
$b[] = 'b';
$b[] = 'c';
// создаст массив array(0 => 'a' , 1 => 'b' , 2 => 'c'),
// или просто array('a', 'b', 'c')
?>

Еще один практический пример:

<?php
// Массив как карта (свойств)
$map = array( 'version'    => 4,
              
'OS'         => 'Linux',
              
'lang'       => 'english',
              
'short_tags' => true
            
);
            
// исключительно числовые ключи
$array = array( 7,
                
8,
                
0,
                
156,
                 -
10
              
);
// это то же самое, что и array(0 => 7, 1 => 8, ...)

$switching = array(         10// ключ = 0
                    
5    =>  6,
                    
3    =>  7
                    
'a'  =>  4,
                            
11// ключ = 6 (максимальным числовым индексом был 5)
                    
'8'  =>  2// ключ = 8 (число!)
                    
'02' => 77// ключ = '02'
                    
0    => 12  // значение 10 будет перезаписано на 12
                  
);
                  
// пустой массив
$empty = array();
?>

Коллекция:

<?php
$colors 
= array('красный''синий''зеленый''желтый');

foreach (
$colors as $color) {
     echo 
"Вам нравится $color?\n";
}
?>

Результат работы рассмотренного скрипта:

Вам нравится красный?
Вам нравится синий?
Вам нравится зеленый?
Вам нравится желтый?

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

<?php
$firstquarter  
= array(=> 'Январь''Февраль''Март');
print_r($firstquarter);

?>

Результат работы приведенного скрипта будет следующий:

Array 
(
[1] => 'Январь'
[2] => 'Февраль'
[3] => 'Март'
)

Пример заполнения массива:

<?php
// заполняет массив всеми элементами директории
$handle opendir('.');
while (
false !== ($file readdir($handle))) {
    
$files[] = $file;
}
closedir($handle);
?>

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

Рекурсивные и многомерные массивы:

<?php
$fruits 
= array ( "фрукты" => array ( "a" => "апельсин",
                                      
"b" => "банан",
                                      
"c" => "яблоко"
                                    
),
                  
"числа"  => array ( 1,
                                      
2,
                                      
3,
                                      
4,
                                      
5,
                                      
6
                                    
),
                  
"дырки"  => array (      "первая",
                                      
=> "вторая",
                                           
"третья"
                                    
)
                 );

// Несколько примеров доступа к значениям предыдущего массива
echo $fruits["дырки"][5];    // напечатает "вторая"
echo $fruits["фрукты"]["a"]; // напечатает "апельсин"
unset($fruits["дырки"][0]);  // удалит "первая"

// Создаст новый многомерный массив
$juices["яблоко"]["зеленое"] = "хорошее";
?>

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

<?php
$arr1 
= array(23);
$arr2 $arr1;
$arr2[] = 4// $arr2 изменился,
              // $arr1 по прежнему array(2,3)
             
$arr3 = &$arr1;
$arr3[] = 4// теперь $arr1 и $arr3 эквивалентны
?>



Источник: php.su
Категория: Общие вопросы
Просмотров: 3487 | Комментарии: 2
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Copyright Viktor L.P. © 2017 Бесплатный конструктор сайтов - uCoz
down