Массивы

Я долго думал о том, как именно излагать материал. Если брать каждый раздел php и внимательно его изучать, а потом просто выкладывать здесь описание, то мой блог превратится в учебник. Я не утверждаю, что учебники это плохо, но большинство, которые мне попадались, были похожи на словари. Знаем все слова, а предложения составлять все равно не умеем. Поэтому из теории я буду писать и изучать на мой взгляд самое необходимое. Хотя бы вначале, чтобы ваша и моя голова излишне не страдала 😉

Помимо того, что я аккумулирую инфу с различных форумов, блогов и прочего, я часто советуюсь с моим знакомым гуру, который очень хорошо знает php. Он дает советы и вообще сильно мне помогает. Даже стратегия изучения мною пхп была предложена им. Как только у меня и у вас будет достаточный минимум по теории, обещаю, что мы сразу перейдем к серьезным вопросам. Потерпите, осталось немного 😉

Ну а теперь немного знаний

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

1. рядом с именем переменной надо поставить скобки и указать значение:

$myarray[] = “первый”;

добавить в массив еще одну запись? Легко:

$myarray[] = “второй”;

Прошу заметить, что индексация элементов начинается с 0, поэтому чтобы обратится к элементу “первый”, надо указать нулевой индекс:

$myarray[0];//”первый”

2. Еще объявить массив можно с помощью специального слова array:

$mass = array();

А задать элементы, допустим, перечислением:

$mass = array(“house1″ => “банк”, “house2″ => “школа”, 999 =>1000);

Я тут побаловался с индексами, но ничего страшного в этом нет. Сейчас мы в этом убедимся.

<?
//задаем массив перечислением
$mass = array("house1" => "банк", "house2" => "школа", 999 => 1000);
//выводим элемент школа
echo $mass["house2"];
//выводим элемент под индексом 999
echo $mass[999];
?>

Когда я изучал массивы, то наткнулся на интересный способ вывода элементов. Допустим, у нас не 4 элемента, а 400. И выводить их так, как показано выше, согласитесь неудобно. Поэтому можно использовать вот эту замечательную функцию:
print_r.

<?
//задаем массив перечислением
$mass = array("house1" => "банк", "house2" => "школа", 999 => 1000);
//выводим все сразу
print_r($mass);
?>

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

Для меня это оказалось немного сложным в понимании, но со временем привыкаешь и все становится предельно ясным.

<?
$superarray = array(
array("a","b","c"),
array("d","e","f"),
array("g","h","j")
);
echo $superarray[2][2]; //выведет на экран  j
?>

Как видите все просто.





Читайте также:



8 Ответов на “Массивы”

  1. Сергей

    Когда мы создаем многомерный массив, то как потом вывести, например, вторую строку во втором столбце?

  2. novice

    Очень просто :)
    <?
    echo $arr[1][1];
    ?>

  3. Big_Shark

    Когда в массиве 5 или 6 уровней вложений и количество последних вложений состовляет около 65 тысяч вот тогда это действительно парит мозг)

  4. Big_Shark, такие массивы получаются у программистов, у котрых руки их жопы растут

  5. Big_Shark

    2ekim если ты не умеешь работать правильно с массивами то да.
    а каким еще образом ты бы смог вывести 65 тысяч позиций в древовидной форме с помошью 3 запросов
    1 запрос к маркам другой к моделям и 3 к списку комплектаций коих 65 тысяч?

  6. newbie

    Очень интересный и ко времени полезный мне блог.
    Только, не все последовательно, посему, мне как полному новайс совсем не понятна такая запись: $mass = array(“house1″ => “банк”, “house2″ => “школа”, 999 => 1000);
    Что здесь означают “house1″, “house2″, и 999?
    Если индексы элементов массива, то почему они в кавычках?
    И что означает =>? Спасибо.

  7. novice

    newbie, в PHP массивы могут быть ассоциативными, т.е. для приведенного Вами примера можно обратиться к элементу массива с ключом “house1″, получив его значение “банк”:

    echo $mass[‘house1′]; // выведет “банк”
    echo $mass[‘house2′]; // выведет “школа”
    echo $mass[999]; // выведет “1000”

    Таким образом, house1, house2 и 999 - это ключи ассоциативного массива, а знак => означает соответствие между ключом массива и его значением.

    Не знаю статистики, но уверен (по собственному опыту), что разработчики на PHP в 99% случаев используют именно ассоциативные массивы, т.к. они очень удобны.

  8. Пасиб, аффтар за разьяснения. Также вкурил, что без учебников, по одному этому блогу - нифига не выучишь.
    Вот взялся за учебники, читал-читал, но так и не въехал, ну нафига вообще разраб. ПХП создал, если тогда уже Перл был?
    Ведь на Перле можно делать все тоже самое, не так ли?
    Кстати, что-то мне подсказывает, что после Си Перл легче выучить, нежели ПХП, а вы как думаете?
    И маленькая просьба практического характера: помогите пожалуйста решить такую задачу - надо “одеть” функцию shuffle($in, $out); т.е. обеспечить ввод текста в переменную $in, и вывод его же в файл, $out. О практическом применении могу поделиться, если надо.
    Спасибо.
    П.С. я не програмер, пока очень туго дается. Си был намного проще, а ПЛ/1 - вообще был сказка! :-(((


© Copyright. . I-Novice. All Rights Reserved. Terms | Site Map