Чат Telegram
Группа ВКонтакте
Новый комментарий


trialex3
<?php
$article = [
    'ios' => 'iOS',
    'android' => [
        'Google' => [
            'opn' => 'Open Android', 'gaps' => 'Google services'
        ],
        'Samsung', 'Sony', 'LG'
    ],
    'wp' => 'Windows Phone'
];
var_dump ($article);
echo $article['android']['Google'] ['opn'];
ivashkevich

Всё хорошо тут, норм)

SBTesla
<?php
$articles = [ 0 => 'news', 1 => 'title', 2 => 'number', 3 => [
    0 => 'Author', 1 => 'name', 2 => 'date', 3 => [
        0 => 'numberTitle', 1 => 'numberArticle'
    ]
] ];

$articles[3][3][2] = 'numberTipes';
var_dump($articles);
ivashkevich

А зачем вы цифры обернули в кавычки? И начинайте нумерацию всегда с нуля.

WarLikeLaux

enter image description here

ivashkevich

Вместо array() нужно использовать [].

WarLikeLaux

Инициализация массива через [] не работает, ошибку выдает.

ivashkevich

Пришлите ваш код, в котором возникает ошибка, посмотрю что не так.

WarLikeLaux
<?php
$fruits = ['apple', 'orange', 'grape'];
WarLikeLaux

Parse error: syntax error, unexpected '[' in Z:\home\test.org\www\index.php on line 2

ivashkevich

Разобрались, была старая версия PHP - 5.2.

serb2017
<?php
$array3 = [1,2,3,4,5];
$array2 = [$array3,'m2'];
$array1 = [1,2,$array2];
var_dump($array1);
echo $array1[2][0][4];
ivashkevich

И так тоже можно)

1nSide

Как-то так)

$arrList = [
    'author'=>['first_name'=>'Петя', 'last_name'=>'Иванов'],
    'placeOfResidence'=>['street'=>'Пушкинская','house'=>'192'],
    'dateOfBirth' => ['number'=> '23', 'month'=> '05','year' => '2018']

];

?>
    <html>
    <head>
    </head>
    <body>
    <p>Инициалы: <?= $arrList['author']['first_name'] . ' ' . $arrList['author']['last_name']  ?></p>
    <p>Место проживания: <?= $arrList['placeOfResidence']['street'] . ' ' . $arrList['placeOfResidence']['house'] ?></p>
    <p>Дата рождения: <?= $arrList['dateOfBirth']['number'] . ' ' . $arrList['dateOfBirth']['month'] . ' ' . $arrList['dateOfBirth']['year']?></p>
    </body>
</html>
1nSide

Вложил еще один массив, насколько я понял просто в предвидящей задачи сделал просто двойной массив, вложил еще один и заодно разобрался с функцией рандома =)

<?php

$arrList1 = [
    'author'=>[$arrList2 = ['id'=> 'Айди карта№: '], $arrList3 = ['first_name'=>'Петя','Вася','Вова','Гоша','Миша'], $arrList4 = ['last_name'=>'Иванов','Гречкин','Пяточкин'],],
    'placeOfResidence'=>['street'=>'Пушкинская','house' => (random_int(1,200))],
    'dateOfBirth' => ['number'=> random_int(1,30), 'month'=> random_int(1,12),'year' => ' 2018'],
];

$randName = array_rand($arrList3,2);
$randLastName = array_rand($arrList4,2)

?>
    <html>
    <head>
    </head>
    <body>
    <p><?= $arrList2 ['id'],random_int(0,20)?></p>
    <p>Инициалы: <?= $arrList3[$randName[1]] . ' ' . $arrList4[$randLastName[1]]  ?></p>
    <p>Место проживания: <?= $arrList1['placeOfResidence']['street'] . ' ' . $arrList1['placeOfResidence']['house'] ?></p>
    <p>Дата рождения: <?= $arrList1['dateOfBirth']['number'] . ' ' . $arrList1['dateOfBirth']['month'] . ' ' . $arrList1['dateOfBirth']['year']?></p>
    </body>
</html>
ivashkevich

То что разобрались - хорошо, но что-то у вас тут слишком всё сложно и гораздо больше чем требовалось :)
Я ни разу не против, чтобы вы самостоятельно что-то изучали что-то дополнительно. Наоборот - это круто!
Но давайте в комментариях к заданиям всё же будем писать только то, что требуется, иначе мне будет очень сложно разбираться в каких-то не относящихся к уроку вещах.
Надеюсь на ваше понимание :)

1nSide
<?php

$arrays = [ 'первый', 0 =>['второй', 0=> ['третий']]];

echo $arrays[0][0][0];
//var_dump($arrays);
ivashkevich

А теперь добавьте в уже созданный массив новый элемент, на третьем уровне вложенности.

1nSide
$arrays = ['один',0=>[ 1=>'два',2=>'три',1=>[1=>'четыри', 2=>'пять']]];

echo $arrays[0][1][1];
var_dump($arrays);
ivashkevich

Видимо, я как-то не так объяснил, что нужно. Я ожидал следующего:

//тут создаём какой-то массив
$a[0][0][] = 'Новое значение на третьем уровне вложенности';
marner

Так правильно?

<?php
$article = [
    'title' => 'Название статьи',
    'books' => [
        0=> 'Идиот',
        1=> 'Война и мир'],
    'author' =>[
    1=>['last_name'=>'Достоевский','first_name'=>'Фёдор'],
    2 =>['last_name'=>'Толстой','first_name'=>'Лев'],
]

    ];
?>
<html>
<head>
    <title><?= $article['title'] ?></title>
</head>
<body>
<h1><?= $article['title'] ?></h1>
<p><?= $article['books'][0] ?></p>
<p><?= $article['author'][1]['first_name'] . ' ' . $article['author'][1]['last_name'] ?></p>
</body>
</html>
ivashkevich

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

PatarKing
$myArray = [15,25,[25,12,['Last index',21]]];

echo $myArray[2][2][0];
ivashkevich

Как добавить теперь в уже готовый массив вот на этот уровень:

['Last index',21]

ещё один элемент, чтобы в результате стало вот так:

['Last index',21,23]
Fox-24

Благодарствую за урок.

$automobiles = [
    'Car' => 'BMW',
    'Model' => 'X5',
    'Engine' => [
        'Type' => 'Diesel',
        'Volume' => '1.8',
        'Power' => [
            'Horse' => '180',
            'Kilowatts' => '132'
        ]
    ]
];

$automobiles['Engine']['Power']['Newton metre'] = '132';

?>
<html>
<head>
    <title><?= $automobiles['Car'] ?></title>
</head>
<body>
<h1>Автомобиль: <?= $automobiles['Car'] ?></h1>
<h2>Модель: <?= $automobiles['Model'] ?></h2>
<p>Тип двигателя: <?= $automobiles['Engine']['Type'] ?></p>
<p>Лошадиных сил: <?= $automobiles['Engine']['Power']['Horse'] ?></p>
<p>Ньютон метров: <?= $automobiles['Engine']['Power']['Newton metre'] ?></p>
</body>
</html>
ivashkevich

Отличная домашка! =)

Fox-24

Спасибо!) Стараюсь :)

AxLT

Если правильно понял, смысл домашки был не просто в том что бы создать массив с 3х сложным уровнем вложения, но и добавить потом новый элемент в самый низкий уровень. Вот что получилось:

<?php
$phone = [
    'iOS' => 'Apple',
    'Android' => [
        'Xiaomi' => 'China',
        'Sumsung' => [
            'SumsungDuos' => 'China',
            'SumsungGalaxy' => 'England'
        ]
        ],
    'LG' => 'phone'
];

$phone ['Android'] ['Sumsung']['New'] = 'Click here';
var_dump($phone);
echo $phone ['Android'] ['Sumsung'] ['SumsungDuos'];
ivashkevich

Да, всё правильно!

Olga

Мой лист покупок)

<?php
$shoppingList =[
        'dairy'=>[
                'milk'=>'Mlch',
            'butter'=>'Butter',
            'eggs'=>'Eier'
        ],
    'meat'=>[
            'steak' =>'Steak',
        'sausage'=> 'Wurst'
    ],
    'vegetables_and_fruits' =>[
            'fruits' =>[
            'orange' => 'Orange',
        'mango'=>'Mango',
        'apple'=>'Apfel'
    ],
           'vegetables' =>[
            'potato' => 'Kartofeln',
        'cabbage' => 'Kohl'
            ],
        ],
    'bakery' => [
            'bread' => 'Brot'
    ]
        ];
var_dump ($shoppingList);
?>
<html>
<head>
    <title>Einkaufsliste:</title>
</head>
<body>
<h1>Einkaufsliste</h1>
<h2>1.Milchprodukte:</h2>
<p><?=$shoppingList['dairy']['milk'].', '.$shoppingList['dairy']['butter'].', '. $shoppingList['dairy']['eggs']?></p>
<h2>2.Fleisherei: </h2>
<p><?=$shoppingList['meat']['steak'].', '.$shoppingList['meat']['sausage']?></p>
<h2> 3.Obst und Gemüse. </h2>
<h3> 3.1 Obst:</h3>
<p><?=$shoppingList['vegetables_and_fruits']['fruits']['orange'].', '.$shoppingList['vegetables_and_fruits']['fruits']['mango'].', '.$shoppingList['vegetables_and_fruits']['fruits']['apple']?></p>
<h3> 3.2 Gemüse: </h3>
<p><?=$shoppingList['vegetables_and_fruits']['vegetables']['potato'].', '.$shoppingList['vegetables_and_fruits']['vegetables']['cabbage']?></p>
<h2> 4.Bäckarei:</h2>
<p><?=$shoppingList['bakery']['bread']?></p>
</body>
</html>
stasokulov@gmail.com
<?php
$animals = ['fishes' => 'tuna','amphibians' => 'salamander','mammals' => ['primates' => 'human','dogs' => 'wolf','feline' => [1 => 'tiger', 2 => 'leon'] ] ];

var_dump($animals);

echo "<br><br>";

$animals['mammals']['feline'][3] = 'cat';

var_dump($animals);
ivashkevich

Отлично!

vadymbilyi@gmail.com

Зачем назначать ключи? Можно просто сделать так:

<?php
$animals = [
    'fishes' => 'tuna',
    'amphibians' => 'salamander',
    'mammals' => [
       'primates' => 'human',
        'dogs' => 'wolf',
        'feline' => ['tiger', 'leon'] ]
];

var_dump($animals);

echo "<br><br>";

$animals['mammals']['feline'][] = 'cat';

var_dump($animals);
?>
virtual2018
<?php

$array = [
    'film' => [
        'The Dark Knight' => [
            'Stars' => [
                ['Christian Bale' => 'born - January 30, 1974'],
                ['Aaron Eckhart' => 'born -  March 12, 1968']
                ]
            ]
        ]
];

$array['film']['The Dark Knight']['Stars'][] = ['Heath Ledger' => 'born - April 4, 1979'];

var_dump($array);
ivashkevich

Отлично!

Bogdan
<?php

$article = [
    'title' => 'Название статьи',
    'text' => 'Текст статьи',
    'author' => [
        'first_name' => ['Иван', "Дурак"],
        'last_name' => 'Иванов'
    ]
];
$article['author']['first_name'][] = 'Мефодий';
var_dump($article);
ivashkevich

Отлично

bratko

А я правильно сделал?

<?php
$article = [
    'title' => 'Название статьи',
    'text' => 'Описание статьи',
    'author' => [
        'info' => [
            'last_name' => 'Иванов',
            'first_name' => 'Иван',
            'year' => '1989 года рождения'
        ]
    ]
];
?>
<html>
<head>
    <title><?= $article['title'] ?></title>
</head>
<body>
<h1><?= $article['title'] ?></h1>
<p><?= $article['text'] ?></p>
<p><?= $article['author'] ['info'] ['first_name'] . ' ' . $article['author'] ['info'] ['last_name'] . ' ' . $article['author'] ['info'] ['year'] ?></p>
</body>
</html>
bratko

Попытался сейчас в year оставить только 1989, а следом текст добавить как отдельный элемент. Добавил код отдельно:

$article['author']['info']['year'][] = 'года рождения';

Но не правильно что-то, выдает ошибку в браузере:

Fatal error: Uncaught Error: [] operator not supported for strings in /Applications/MAMP/htdocs/uchu_php/arrays.php on line 13

Error: [] operator not supported for strings in /Applications/MAMP/htdocs/uchu_php/arrays.php on line 13
ivashkevich

Потому что ...['year'] - уже определен как строка, а ты потом пытаешься применить к нему оператор добавления нового элемента в массив. Выход - изначально хранить в ...['year'] массив с единственным элементом:

'year' => ['1989']
bratko

Аа..точно надо было так

$article['author']['info']['year2'] = 'года рождения';

Сразу и имя задал новому массиву, а то сначала так сделал:

$article['author']['info'][] = 'года рождения';

И новому массиву "0" присвоился. Теперь понял.

bratko

Я просто в самый первый раз пытался добавить новый массив сразу к существующему ['year'] думал получится))

ivashkevich

Ага, можно так

XXX
<?php

$articles = ['firstLev1' => 'name',
             'firstLev2' => 'age',
             'firstLev3' => [ 'secondLev1' => 'name2',
                              'secondLev2' => 'age2',
                              'secondLev3' => [ 'lastLev1' => 'name3',
                                                'lastLev2' => 'age3'
                                              ]
                            ]
            ];

$articles['firstLev3']['secondLev3']['lastLev3']='theEnd';
var_dump($articles);
ivashkevich

Отлично

N9PIX
<?php
$article = [
    'title' => 'Адресса домов',
    'home' =>[ 'myAdress' => '****',
        'myHome' => [
            'myAppartment' => '25',
            'Floor' => [ 'myFloor' => '7 этаж',
                'howManyFloors' => '9 этажей',
                ]
        ]
    ],
    'I_am' => [
        'first_name' => 'Иван',
        'last_name' => 'Викторович'
    ]
];
?>
excent63

Пока решил оставить функции с рекурсиями на потом пошёл читать дальше)
Правильно ли я понял задание с массивами

<?php
$stock = [
    'shelf1' => 'box1',
    'shelf2' => ['box2', 'box3'],
    'shelf3' => ['box4', 'box5'=>['package1', 'package2']]
];
$stock ['shelf3']['box5']['package1'] = ['product1'];
var_dump($stock);
ivashkevich

Да, верно

SashkoUkraine
$cars = ['brand' => 'bmw', 'year' => ['datePurchase' => 1999, 'dateSell' => 2016], 'color' => ['red', 'blue', 'white', 'black'], 'tires' => ['year' => 2015, 'type' => ['winter' => false]]];

var_dump($cars);

$cars['tires']['type']['summer'] = true;

var_dump($cars);
ivashkevich

Ок!

Pro100Bah
<?php
echo __DIR__;
$countryWorld = [
    'country0' => 'Россия',
    'city' => 'Оренбург',
    'landmark' => [
        'administrative building' => 'Дом советов',
        'monument' => 'Памятник Пушкину и Далю',
        'theatre' => [
            'name' => 'Оренбургский областной драматический театр имени М. Горького',
            'date of construction' => '1869',
            'genres' => 'comedy, drama',
        ]
    ]
];
var_dump($countryWorld);
echo '<hr>';
?>
<html>
<head>
    <title><?= $countryWorld['country0'] ?></title>
</head>
<body>
<h1>Город: "<?= $countryWorld['city'] ?>"</h1>
<h2>Достопремечательности </h2>
<p>Наименование театра: <?= $countryWorld['landmark']['theatre']['name'] ?><br>
Дата основани: <?= $countryWorld['landmark']['theatre']['date of construction'] ?><br>
Жанры, представленные в театре: <?= $countryWorld['landmark']['theatre']['genres'] ?></p>
</body>
</html>

Вроде все сделал, с добавлением переменной что-то не пойму, делал вечером голова уже не варит.

ivashkevich

Суть задания - добавить теперь на одном уровне с name и genres еще один элемент.

Pro100Bah
$countryWorld['landmark']['theatre']['address'] = 'Оренбург, ул.Советская 26';
var_dump($countryWorld);
ivashkevich

Ок)

alex.evg.ostr

Спасибо за курсы, ты молодец! Очень интересно )

<?php
$article = ['someone' => ['profession' => ['programmer' => 'c+']]];
$article['someone']['profession']['ingener'] = 'pc';
echo $article['someone']['profession']['ingener'];
var_dump($article);
ivashkevich

Рад слышать) По домашке - всё отлично.

rashik-2009@yandex.ru
<?php

$auto = ['carone' => 'Lada',
     'cartwo' => 'Ford',
     'carthree' => 'shevrolet',
     'cartype' => ['typeone' => 'Vesta',
              'typetwo' => 'Focus',
              'typethree' => 'Niva',
              'carcolor' => ['colorone' => 'red', 'colortwo' => 'black'] 
              ]

    ];

$auto ['cartype']['carcolor']['colorthree'] = 'blue';

var_dump($auto);

?>
ivashkevich

Отлично!

babls2332@gmail.com
<?php
$order = [
    'recipient' => [
        'place_receipt' => [
            'country' => 'ukraine',
            'city' => 'Odessa'

        ]
    ]
];

var_dump($order);

$order['recipient']['place_receipt']['street'] = 'bocharova 1';

var_dump($order);
ivashkevich

Отлично!

bratko

Я сделал так

$office = [
    'electronics' => [
        'computer' => [
            'apple' => ['macbook1' => 'Air', 'macbook2' => 'Pro'],
        ],
    ],
];

var_dump($office);
echo $office['electronics']['computer']['apple']['macbook2'];

И не пойму, почему var_dump выводит на экран вот так:

array (size=1)
  'electronics' => 
    array (size=1)
      'computer' => 
        array (size=1)
          'apple' => 
            array (size=2)
              ...
Pro

Почему взамен, чтобы вывести

'macbook1' => 'Air', 'macbook2' => 'Pro'

он выводит "..."?

ivashkevich

В настройках есть пункт про глубину вложенности при выводе через var_dump. Погуглите (на английском только гуглите).

Grewi
$site = [
    'heade' => 'Содержимое раздела heade',
    'body' => [
        'header' => 'Заголовок',
        'footer' => 'Подвал',
        'content' => [
            'left' => 'Левая колонка',
            'right' => 'Правая колонка'
        ]
    ]
];
$site[body][content][center] = 'Центр';
ivashkevich
$site['body']['content']['center'] = 'Центр';

В качестве ключей должны быть строки (со скобочками). У вас же PHP пытался найти константы с таким именем, не нашел их, и преобразовал в соответствующие строки. Для этого ему потребовалось время, которое можно было не тратить, укажи вы сразу строки.

Grewi

Спасибо.

lilit
<?php
$animals = [
    'cats' => [
            'white' => ['Васька', 'Снежок'
            ],
            'black' => ['Черныш', 'Барсик'
            ],
            'gray' => ['Флэш', 'Тишка'
            ],
    ],

    'dogs' => [
            'white' => ['Шарик', 'Бобик'
            ],
            'black' => ['Рэкс', 'Барбос'
            ],
            'gray' => ['Максик', 'Тузик'
            ]
    ]
];

$animals['dogs']['gray'][2] = 'Мишка';

var_dump($animals);
ivashkevich

Ок. Индекс при добавлении можно не указывать:

$animals['dogs']['gray'][] = 'Мишка';
Boodoo
<?php
    $arr = [
        0 => [
            0 => [
            ]
        ]
    ];
    $arr[0][0][] = 1;
    var_dump($arr);
artemship
<?php
$cars = [
    'mark' => [
        'model' => [
            'age' => 3,
            'color' => 'red'
        ]
    ]
];
$cars['mark']['model']['run'] = 8500;
echo 'Пробег: ' . $cars['mark']['model']['run'] . ' км';
ivashkevich

Отлично

Dram
<?php
$perviy=['Первый уровень'];

$vtoroy=[
    'vtoroy' => 'Второй уровень ассоциативный массив',
     'tetiy' => [
         'end' => 'Самый нижний уровень',
         'end2' => 'Это будем удалять',
    ]
];
unset($vtoroy['tetiy']['end2']);
var_dump($vtoroy);
echo $vtoroy['tetiy']['end'];
echo $vtoroy['tetiy']['end2'];
ivashkevich

После создания массива нужно ещё добавить элемент на третьем уровне вложенности. Как будете это делать?

Dram

Так?

<?php
$perviy=['Первый уровень'];

$vtoroy=[
    'vtoroy' => 'Второй уровень ассоциативный массив',
    'tetiy' => [
        'end' => 'Самый нижний уровень',
        'end2' => 'Это будем удалять',
    ]
];
$vtoroy[] = 'vtoroy2';
unset($vtoroy['tetiy']['end2']);
var_dump($vtoroy);
echo $vtoroy['tetiy']['end'];
echo $vtoroy['tetiy']['end2'];

Только я не понял как добавить элемент массива на 3 уровень?
up кажется понял - так?

<?php
$perviy=['Первый уровень'];

$vtoroy=[
    'vtoroy' => 'Второй уровень ассоциативный массив',
    'tetiy' => [
        'end' => 'Самый нижний уровень',
        'end2' => 'Это будем удалять',
    ],
    $vtoroy['tetiy'] = ['end3'],
];
//unset($vtoroy['tetiy']['end2']);
var_dump($vtoroy);
echo $vtoroy['tetiy']['end'];
echo $vtoroy['tetiy']['end2'];
ivashkevich

Посмотрите решения выше

krollik1000000@gmail.com
$arr = ['my'=> ['name'=>['denis'=>[28]]]];

$arr['my']['name']['denis'][] = 31;
$arr['my']['name']['denis'][] = 1;
ivashkevich

Отлично!

Moskva

Код:

$article = [
    'title' => 'Какой-то заголовок',
    'text' => [
        'text1' =>[
            'addition1' =>[
                'application1' => 'zero',
                'application2' => 'Учитывая все факторы'

            ],
            'addition2' => 'Просто так'
        ],
        'text2' => 'Не нужно'
    ],
    'author' => [
        'firstName' => 'Имя',
        'lastName' => 'Фамилия'
    ]
];
ivashkevich

После создания массива нужно добавить элемент на самом глубоком уровне вложенности.

Moskva

Код:

$article = [
    'title' => 'Какой-то заголовок',
    'text' => [
        'text1' =>[
            'addition1' =>[
                'zero',
                'Учитывая все факторы'
            ],
            'addition2' => 'Просто так'
        ],
        'text2' => 'Не нужно'
    ],
    'author' => [
        'firstName' => 'Имя',
        'lastName' => 'Фамилия'
    ]
];

$article['text']['text1']['addition3'] = ['Добавленный элемент'];

var_dump($article);
ivashkevich

Должно быть ещё одно действие после создания массива...

esqrx
<?php

$ears = [
    'China' => 'Tokio',
    'Moldova' => 'Chisineu',
    'AND' => [
        'Romania' => 'Bucuresti',
        'Evrope' => [
            'west' => ['Portugal', 'France', 'Spain'],
            'i' => 'Odessa'
        ]
    ]
];

echo $ears['AND']['Evrope']['west'][1];

$ears['China'] = 'Pekin';
var_dump($ears);
echo '<hr>';
unset($ears['China']);
var_dump($ears);
ivashkevich

В задании после создания массива нужно было добавить запись на самом глубоком уровне вложенности. Вы добавили на самом первом уровне.

esqrx
<?php

$ears = [
    'China' => 'Tokio',
    'Moldova' => 'Chisineu',
    'AND' => [
        'Romania' => 'Bucuresti',
        'Evrope' => [
            'west' => ['Portugal', 'France', 'Spain'],
            'i' => ['Odessa']
        ]
    ]
];

echo $ears['AND']['Evrope']['west'][1];

$ears['AND']['Evrope']['i'][] = 'Kuiv';
var_dump($ears);
echo '<hr>';
unset($ears['AND']['Evrope']['i'][1]);
var_dump($ears);
ivashkevich

Хорошо

Bizzzon

У меня вопрос: зачем убирать элементы массива через unset(), или добавлять новые элементы путём кода,если можно просто удалить или добавить элемент вручную прямо в массиве?

ivashkevich

Что значит вручную?

Bizzzon

Ну, просто взять, и стереть с помощью клавиши на клавиатуре

ivashkevich

Потому что программы изменяют массивы)

Bizzzon
<?php
$memory = [
    'movies' => [
        'films' => [
            'horrors' => '28 dayZ later',
            'comedy' => 'old school',
            'fantastic'
        ],
        'serials' => [
            'motivation' => 'Mad Man',
            'detective' => 'sherlock holmes'
        ]
    ]
];
$memory['movies']['films']['fantastic'] = 'hellboy';
echo $memory['movies']['films']['fantastic'];
var_dump($memory);
ivashkevich

Отлично

Reechniy
<?php
$beer = ['dark beer'=>[
    'ginness'=>'Ireland',
    'Mackeson’s XXX Stout'=>'Malta'
],
    'light beer' => [
        'pilsner' => [
            'Augustiner Pils' => 'Germany',
            'Jupiler' => 'Belgium'

        ],
        'Bock' => [
            'Dornbusch Bock' => 'USA',
            'Paulaner Salavator' => 'Germany'
        ]
    ]
];
$beer['light beer']['Belgium']['stout']['Ireland'] = 'best beer';
var_dump($beer);
echo $beer ['light beer']['Belgium']['stout']['Ireland'];
ivashkevich

Отлично

kvakazuabr

$arr2 = [[['1'=>'dfrty','2'=>'dwfjy']],[['3'=>'fvjf']],[['4'=>'hnmjh,y','5'=>'fwgjyk','6'=>'rrtg']]];```
ivashkevich

Зачем в одну строку всё? Ничего непонятно

AlexxxEy
$article = [
        'title' => 'Заголовок',
        'text' => 'Нужный текст',
        'author' => [
                'first_name' => [ 'Once_name' => 'Lew'

                ]

        ]
];

print $article['author']['first_name']['Once_name'];
ivashkevich

Задание не выполнено. Надо добавить элемент уже после создания массива.

Скобки прыгают. На каком уровне открываете, на том и закрывайте. А то открыли на одной строке, затем 2 переноса, и следом закрывающая.

Aleks
<?php
$article = [
    'title' => 'Название статьи',
    'text' => 'Текст статьи',
    'author' => [
        'first_name' => 'Aleksey',
        'last_name' => 'Popov'
    ],
    'books' => [
        'name_book' => [
                'first_book' => 'Война и Мир',
                'second_book' => 'Три кота'
            ],
        'language_book' => "Русский"
    ]
];

$article['books']['name_book']['third_book'] = 'Три поросенка';

?>
<html>
<head>
    <title><?= $article['title'] ?></title>
</head>
<body>
<h1><?= $article['title'] ?></h1>
<p><?= $article['text'] ?></p>
<p><?= $article['author']['first_name'] . ' ' . $article['author']['last_name'] ?></p>
<p><?= $article['books']['name_book']['first_book'] ?></p>
<p><?= $article['books']['name_book']['second_book'] ?></p>
<p><?= $article['books']['name_book']['third_book'] . ' - ' . 'Язык перевода ' . $article ['books']['language_book'] ?></p>

</body>
</html>
ivashkevich

А где добавление элемента после создания массива?

Aleks

Поправил

ivashkevich

Отлично

lenapetrowa92@gmail.com

как то так.

<?php
$me = [
    'name' => 'Elena',
    'last_name' => 'Luk',
    'family' => [
        'mother' => 'Надежда',
        'father' => 'Владимир',
        'cats' => [
            'older_cat' => 'Еша',
            'younger_cat' => 'Яша'
        ],
    ],
];
$me['family']['middle_cat'] = 'Тася';
var_dump($me);
echo '<br>';
echo $me ['family']['cats']['younger_cat'];
ivashkevich

Пропустили ключ cats

Vladimir96
    $borschtInfo = [1 => 
                        [ 2 => 
                            ['Свекла' => 'Благодаря свекле борщ обычно темно-красного цвета', 
                             'Лук' => 'А зажарка из лука придает общий вкус для супа',
                             'Капуста' => 'А купуста это основной ингридиет, который делает борщ борщом'],
                        ],
                    ];
    $borschtInfo[1][2]['Картошка'] = 'Тоже необходимый элемент для полноты вкуса';
    $borschtInfo[1][2]['Томатная паста'] = 'С пастой обычно делают зажарку для борща';

    var_dump($borschtInfo);
ivashkevich

А где добавление элемента после создания массива?

Vladimir96

Добавил)

ivashkevich

Отлично)

Lasto
<?php

$article=['text'=>'Описание содержание книги',
           'title'=>'Книга лучшего автора',
           'user'=> ['first_name'=>'всилий','last_name'=>['birth'=>'12 ноября','year'=>'1940']]

           ];

?>

<html>
    <head>
        <title><h1><?= $article ['title'];?> </h1>  </title>
        <hr>
</head>
    <bodi>

        <h1><?= $article ['title'];?> </h1>
        <hr>
        <p><?= $article ['text'];?> </p>
        <p>Имя:<?= $article ['user']['first_name']?> <br></p>
        <p>Год:<?=$article ['user']['last_name']['year']?></p>
        <p>День рожденье:<?= $article['user']['last_name']['birth'];?> </p>

    </bodi>

</html>
ivashkevich

А где добавление элемента после создания массива?

Ooleg
$basket = ['plaid', 'pillow', 'food' => ['vegies' => ['tomato'], 'fruits' => ['apple']]];

$basket[food][fruits][] = 'orange';
$basket[food][fruits][] = 'grape';
$basket[food][vegies][] = 'cucumber';
$basket[food][vegies][] = 'onions';
array_push($basket[food][fruits], 'cherries', 'pear');

var_dump($basket);
ivashkevich

$basket[food][fruits][]
Так нельзя, будут ошибки. Должны быть строки, в кавычках.

Ooleg

Доброе утро, так array_push($basket["food"]["fruits"], 'cherries', 'pear'); или вот так array_push($basket['food']['fruits'], 'cherries', 'pear');?

ivashkevich

Зачем функции? В первом варианте всё было ок, кроме того, что ключи должны быть строками.

Clawson

array.php

<?php
$catalog = [
    'films' => [
        'comedy' => [
            'title' => [
                'Не грози южному централу'
            ],
            'info' => [
                'Молодой афроамериканец по прозвищу Пепельница переезжает в Южный Централ...'
            ]
        ],
        'horrors' => [
            'title' => [
                'Оно'
            ],
            'info' => [
                'Когда в городке Дерри, штат Мэн, начинают пропадать дети...'
            ]
        ]
    ]
];

$catalog['films']['horrors']['title'][] = 'Чужие';
$catalog['films']['horrors']['info'][]= 'Про желудочных червей из космоса';

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

require __DIR__ . '/array.php';
$content = '<h2>' . $catalog['films']['horrors']['title'][0] . '</h2><p>' . $catalog['films']['horrors']['info'][0] . '</p>';
ivashkevich

Title и info добавятся как 2 разных фильма. Сделай так, чтобы добавлялись в один.

Clawson

Да да) Я уже вчера переписал код. Самому не понравилось, когда пробовал удалить фильм х) Переписал код немного иначе + жанр взял как элемент фильма.

<?php
$catalog = [
    'film' => [
        [
            'title' => 'Не грози южному централу',
            'info' => 'Молодой афроамериканец по прозвищу Пепельница переезжает в Южный Централ...',
            'genry' => ['комедия', 'криминал'],
            'actors' => ['Шон Уайанс', 'Марлон Уайанс']
        ]
    ],
    'tv series' => [
        [
            'title' => 'Теория большого взрыва',
            'info' => 'Два блестящих физика Леонард и Шелдон — великие умы, которые понимают, как устроена вселенная...',
            'genry' => ['комедия', 'мелодрамма'],
            'actors' => ['Джонни Галэки', 'Джим Парсонс', 'Кейли Куоко']
        ]
    ]
];

var_dump($catalog);

//Добавим новый фильм
$catalog['film'][] = [
        'title' => 'Люди в черном',
        'info' => 'Они — самый большой секрет Земли. Они работают на неофициальное правительственное агентство, регулирующее деятельность инопланетян на Земле.',
        'genry' => ['комедия', 'фантастика', 'боевик', 'детектив'],
        'actors' => ['Томми Ли Джонс', 'Уилл Смит']
    ];

var_dump($catalog);

//Добавим актера в существующий фильм
$catalog['film'][1]['actors'][] = 'Случайный пришелец';

var_dump($catalog);

Так лучше?

ivashkevich

Отлично :)

Dreft
<?php
$arr = [
    'Товары' => [
        'Фрукты' => [
            'Яблоко',
            'Арбуз',
            'Дыня'
        ],
        'Овощи' => [
            'Огурец',
            'Баклажан'
        ]
    ]
];
$arr['Товары']['Фрукты'][] = 'Апельсин';
$arr['Товары']['Овощи'][] = 'Морковь';
var_dump($arr);
ivashkevich

Отлично

ValeriiNN

я так сделал:

<?php
$article = [
    'title' => 'Статья про Сбербанк',
    'text' => 'Сбербанк Решил снизить ключевую ставку по ипотечному кредитованию',
    'author' => [
        'firstName' => 'Валерий',
        'lastName' => 'Новосёлов',
        'rank' => [
            'prestige' => 'Высокий рейтинг',
            'prestige2' => 'Средний рейтинг',
        ]
    ]
];
?>
<html>
<head>
    <title><?= $article ['title'] ?></title>
</head>

<h1><?= $article ['title'] ?></h1><br>
<h2><?= $article ['text'] ?></h2><br>
<?= $article ['text'] ?><br>

<br>Автор: <strong><em><?= $article ['author'] ['firstName'] ?> <?= $article ['author'] ['lastName'] ?></em></strong>
<br>Рейтинг Автора: <strong><em><?= $article['author'] ['rank'] ['prestige2'] ?>.</em></strong>
</body>
</html>
ivashkevich

А где добавление элемента после создания массива?

H3licoptero
$instrumentTypes = [
    'keyboard' => 'Grand piano',
    'strings' => 'cello',
    'wind' => [
        'brass' => 'trumpet',
        'woodwind' => [
            'first_oboe_type' => 'oboe piccolo',
            'second_oboe_type' => 'oboe d\'amour',
        ]
    ]
];

$instrumentTypes ['wind']['organ'] = 'french organ';
$instrumentTypes ['wind']['woodwind']['third_oboe_type'] = 'oboe da caccia';

var_dump($instrumentTypes);

echo $instrumentTypes ['wind']['woodwind']['third_oboe_type'];
ivashkevich

Всё хорошо, только пробелы не нужны вот тут:

$instrumentTypes ['wind'] ['organ']
H3licoptero

Понял. Спасибо!)

dliashchenko
<?php
$users = [
    'admin'=> [
        'first name' => 'Денис',
        'last name' => 'Денисов',
        'personal data' =>[
            'phone' => '+79612987650',
            'email' => 'dmorozov@bk.com',
            'age' => '23'
        ]
    ]
];
$users['admin']['personal data']['gender'] = 'man';
var_dump($users);
?>
<html lang="ru">
<head>
    <meta charset="utf-8">
</head>
<body>
<p>Имя: <?= $users['admin']['first name']?></p>
<p>Фамилия: <?= $users['admin']['last name']?></p>
<p>Телефон: <?= $users['admin']['personal data']['phone']?></p>
<p>Пол: <?= $users['admin']['personal data']['gender']?></p>
</body>
</html>

Результат:

array (size=1)
'admin' =>
array (size=3)
'first name' => string 'Денис' (length=10)
'last name' => string 'Денисов' (length=14)
'personal data' =>
array (size=4)
'phone' => string '+79612987650' (length=12)
'email' => string 'dmorozov@bk.com' (length=15)
'age' => string '23' (length=2)
'gender' => string 'man' (length=3)

Имя: Денис

Фамилия: Денисов

Телефон: +79612987650

Пол: man

ivashkevich

Отлично

kvakazuabr
$arr = [[[]]];
$arr[0][0][] = 'snake'; 
$arr[0][0][] = 'cat'; 
var_dump($arr);
ivashkevich

Падает с ошибкой

kvakazuabr
$arr =[[[]]];
array_push($arr[0][0], "apple", "raspberry");
$arr[0][0][] = 'cat';

print_r($arr);
должно работать
ivashkevich

А зачем всё перелопатили? Исправьте конкретную ошибку, из-за которой падало.

kvakazuabr

исправил

ivashkevich

Что исправили? Код нерабочий! Вот я его копирую, запускаю, и у меня ошибка. Вы его даже не запускали у себя. Не надо так.

kvakazuabr

var_dump меня подвел вместо var - war так все работает

ivashkevich

Никто вас не подводил. Проверяйте код перед отправкой на проверку.

zuxarevaalina88@gmail.com
<?php
$basket = [
'vegetables' => 'potato',
'berriesfruits' => [ 'berries'=>'strawberry',
                      'fruits'=> ['apple' => 'red',
                                   'pear'=> 'green'
]

]
];
var_dump($basket);
ivashkevich

А где добавление элемента после создания?

zuxarevaalina88@gmail.com
<?php
$basket = [
'vegetables' => 'potato',
'berriesfruits' => [ 'berries'=>'strawberry',
                      'fruits'=> ['apple' => 'red',
                                   'pear'=> 'green'
]

]
];
$basket ['berriesfruits']['fruits']['plum'] = 'yellow';
var_dump($basket);
ivashkevich

Отлично

Evilinside
$article = [
    'title' => 'Название статьи',
    'text' => 'Текст статьи',
    'author' => [
        'first_name' => 'Иван',
        'last_name' => 'Иванов',
        'books' => [
            'book1' => 'Книга 1',
            'book2' => [
                'section1' => 'Раздел 1',
                'section2' => 'Раздел 2'

            ]
        ]
    ]

];

echo $article['author']['books']['book1'] . "\n";
echo $article['author']['books']['book2']['section2'];
ivashkevich

А где добавление элемента после создания?

Evilinside

Прошу прощения) забыл

$article = [
    'title' => 'Название статьи',
    'text' => 'Текст статьи',
    'author' => [
        'first_name' => 'Иван',
        'last_name' => 'Иванов',
        'books' => [
            'book1' => 'Книга 1',
            'book2' => [
                'section1' => 'Раздел 1',

            ]
        ]
    ]

];

$article ['author']['books']['book2']['section2'] = 'Раздел 2' ;

echo $article['author']['books']['book1'] . "\n";
echo $article['author']['books']['book2']['section2'];
ivashkevich

Отлично

anton-gogo@mail.ru
?php 

$articles =[
    'title'=> [
        'firstTitle'=> 'Какой то',
        'lastTitle'=> 'Заголовок'
    ],
    'author'=>[
        'lastName'=>[
            'in'=> 'Инициалы',
            'last'=>'Фамилия'
        ]
    ],
    'text'=> [
        'firstText'=> 'Какой то',
        'lastText'=>'Текст'
    ]
];
?>

<!DOCTYPE html>
<html>
<head>
    <title><?= $articles[title][firstTitle] ?> <?= $articles[title][lastTitle] ?></title>
</head>
<body>
    <h1><?= $articles[author][lastName][in]?> <?= $articles[author][lastName][last] ?></h1>
    <p><?= $articles[text][firstText] ?> <?= $articles[text][lastText] ?></p>
</body>
</html>

Инициалы Фамилия
Какой то Текст

ivashkevich

А где добавление элемента после создания?

Онлайн-курсы PHP и MySQL
Обучение с полного нуля до уровня джуниора!
Начать бесплатно
Логические задачи с собеседований