Массивы
Я долго думал о том, как именно излагать материал. Если брать каждый раздел 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
?>
Как видите все просто.
Читайте также:
Когда мы создаем многомерный массив, то как потом вывести, например, вторую строку во втором столбце?
Очень просто
<?
echo $arr[1][1];
?>
Когда в массиве 5 или 6 уровней вложений и количество последних вложений состовляет около 65 тысяч вот тогда это действительно парит мозг)
Big_Shark, такие массивы получаются у программистов, у котрых руки их жопы растут
2ekim если ты не умеешь работать правильно с массивами то да.
а каким еще образом ты бы смог вывести 65 тысяч позиций в древовидной форме с помошью 3 запросов
1 запрос к маркам другой к моделям и 3 к списку комплектаций коих 65 тысяч?
Очень интересный и ко времени полезный мне блог.
Только, не все последовательно, посему, мне как полному новайс совсем не понятна такая запись: $mass = array(“house1″ => “банк”, “house2″ => “школа”, 999 => 1000);
Что здесь означают “house1″, “house2″, и 999?
Если индексы элементов массива, то почему они в кавычках?
И что означает =>? Спасибо.
newbie, в PHP массивы могут быть ассоциативными, т.е. для приведенного Вами примера можно обратиться к элементу массива с ключом “house1″, получив его значение “банк”:
echo $mass[‘house1′]; // выведет “банк”
echo $mass[‘house2′]; // выведет “школа”
echo $mass[999]; // выведет “1000”
Таким образом, house1, house2 и 999 - это ключи ассоциативного массива, а знак => означает соответствие между ключом массива и его значением.
Не знаю статистики, но уверен (по собственному опыту), что разработчики на PHP в 99% случаев используют именно ассоциативные массивы, т.к. они очень удобны.
Пасиб, аффтар за разьяснения. Также вкурил, что без учебников, по одному этому блогу - нифига не выучишь.
Вот взялся за учебники, читал-читал, но так и не въехал, ну нафига вообще разраб. ПХП создал, если тогда уже Перл был?
Ведь на Перле можно делать все тоже самое, не так ли?
Кстати, что-то мне подсказывает, что после Си Перл легче выучить, нежели ПХП, а вы как думаете?
И маленькая просьба практического характера: помогите пожалуйста решить такую задачу - надо “одеть” функцию shuffle($in, $out); т.е. обеспечить ввод текста в переменную $in, и вывод его же в файл, $out. О практическом применении могу поделиться, если надо.
Спасибо.
П.С. я не програмер, пока очень туго дается. Си был намного проще, а ПЛ/1 - вообще был сказка! :-(((