Я в PHP вообще ни бум-бум. JS немного шарю. Помогите понять что тут происходит.
global $data;
$data=array();
$data["th"]=array();
$data["th"][0]=array("name"=>"Автовышки","name1"=>"автовышек","name2"=>"автовышки","alias"=>"avtovyshki");
$data["th"][1]=array("name"=>"Автокраны","name1"=>"автокранов","name2"=>"автокрана","alias"=>"avtokrany");
$data["th"][2]=array("name"=>"Бульдозеры","name1"=>"бульдозеров","name2"=>"бульдозера","alias"=>"buldozery");
$data["teh"]=array();
foreach($data["th"] as $t)
{
$data["teh"][$t["alias"]]=$t;
}
По сути он создал Массив "data", внутри этого массива еще 2 массива "th" и "teh". Внутри "th" еще массивы, с этим все ясно.
Непонятня ситуация, когда он начинает перебирать массив "th" и присваивать каждый его элемент $t. А далее:
$data["teh"][$t["alias"]]=$t;
Как понять?
И еще:
global $data;
Я правильно понимаю, что для того чтобы использовать эти данные в другом php файле нужно как то подключить данный файл, с помощью require или include? Так как очень долго искал где же подключается этот файл (data.php), но так и не нашел.
С конца:
global $data;
Слишком мало информации, но с уверенностью в 99%
можно сказать что ваш кусок - это тело функции... Видимо тот кто писал, хочет чтоб манипуляции были с переменной которую дальше ведет по программе (а именно $data
). Это плохой тон программирования, слишком много минусов у такого подхода, использовать не рекомендую.
$a = 1;
$b = 2;
function test_func() {
global $a;
echo $a; // - Выведет 1
echo $b; // - Ничего не выведет, будешь предупреждение что переменная не существует
}
test_func();
По поводу использования данных в других файлах, вам нужно почитать вот это:
https://www.php.net/manual/ru/language.variables.scope.php
https://www.php.net/manual/ru/function.include.php
https://www.php.net/manual/ru/function.require.php
Там все в примерчиках...
Теперь ко второму:
$data["teh"][$t["alias"]]=$t;
У нас есть массив $data["th"]:
$data["th"] = array();
$data["th"][0] = ...
$data["th"][1] = ...
$data["th"][2] = ...
С этим Вам вроде все понятно, дальше в цикле мы перебираем этот массив и каждый элемент поочередно присваиваем в $t
, Вам тоже это понятно, давайте на первом элементе разберем, т.е. на первой итерации цикла у Вас:
$t = array(
"name" => "Автовышки",
"name1" => "автовышек",
"name2" => "автовышки",
"alias" => "avtovyshki"
);
Собственно, чтобы вывести на экран avtovyshki
, нам нужно написать echo $t["alias"]
. Так-же вы правильно заметили что создается массив teh
, тут - $data["teh"]=array()
.
А теперь смотрите:
$data["teh"][$t["alias"]]=$t;
Для первой итерации выглядит так:
$data["teh"]["avtovyshki"] = array(
"name" => "Автовышки",
"name1" => "автовышек",
"name2" => "автовышки",
"alias" => "avtovyshki"
);
Все переменные я вам показал выше, простая постановка :) ...
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть масив который хочу разобрать и записать в новую БДВсе что я пробовал не дало ожидаемого результата, а подозрение , что это намного проще...
Недавно начал учить Java и постоянно сталкиваюсь с ошибками которых не могу исправить, поэтому прошу помощиВот код:
Есть два класса: Main и CyclesИз класса Cycles методом get() должно передаваться значение переменной SecSycles в класс Main в переменную MainCycle, но её значение...