1

Тема: Допоможіть будь ласка, початківцю.

Вітаю. Потребую допомоги.
Я початківець в php, та і загалом в IT, тому поки все йде важкувато. Та, наразі справа стоїть навіть не втому щоб гарно, без помилок писати код. А саме розуміти завдання. І ось, отримавши чергове я геть не второпаю що робити, з якого боку підходити. Якщо хтось має натхнення, та бажання допомогти - буду дуже вдячний.

Ось таке завдання: треба з цього багатовимірного асоціативного масива вивести лише емейли ціх трьох людей, при цьому цикли for, foreach використовувати не можна.

$A["Ivanov"][rand().'22'] = array("name"=>"Іванов І.І.", "age"=>"25", array(rand()=>"ivanov@gmail.com"));
$A["Petrov"][rand()] = array("name"=>"Петров П.П.", "age"=>"34", "email"=>"petrov@gmail.com");
$A["Sidorov"][rand()] = array("name"=>"Сідоров С.С.", "age"=>"47", "email"=>"sidorov@gmail.com");

var_Dump($A);

2 Востаннє редагувалося koala (08.11.2019 13:14:34)

Re: Допоможіть будь ласка, початківцю.

https://www.php.net/manual/en/function.array-walk.php
https://www.php.net/manual/en/function.array-map.php
https://www.php.net/manual/en/function.array-filter.php

Подякували: leofun01, Ґрінґо, Alex.O3

3 Востаннє редагувалося dot (08.11.2019 13:17:51)

Re: Допоможіть будь ласка, початківцю.

Якось дивно виглядає наведений масив, а так, треʼ ґуґлити добре, так можна знайти потрібну функцию, можливо вона:  array-column.

Подякували: bvn, Ґрінґо2

4

Re: Допоможіть будь ласка, початківцю.

dot написав:

Якось дивно виглядає наведений масив, а так, треʼ ґуґлити добре, так можна знайти потрібну функцию, можливо вона:  array-column.

Від цього "захистилися" другим масивом, все одно якось доведеться лізти всередину.

5

Re: Допоможіть будь ласка, початківцю.

Дякую тим хто відгукнувся *THUMBSUP* . Піду за посиланнями, шукати рішення.

6 Востаннє редагувалося bvn (08.11.2019 16:43:35)

Re: Допоможіть будь ласка, початківцю.

Ну, ще є while, reset, next... може треба в цьому напрямку?

PS: а ще array_shift, array_pop...

Подякували: leofun01, ostap34PHP, Ґрінґо3

7

Re: Допоможіть будь ласка, початківцю.

bvn написав:

Ну, ще є while, reset, next... може треба в цьому напрямку?

PS: а ще array_shift, array_pop...

Дали мені підказку. Але якщо чесно, вона мені щось не дуже помогла.
ось:

var_dump(key($A["Ivanov"][key($A["Ivanov"])][0]));

8

Re: Допоможіть будь ласка, початківцю.

Ви початківець, вам заборонили користуватися деякими функціями - а чим вам дозволили користуватися? Що ви вже вчили?

Подякували: 221VOLT1

9

Re: Допоможіть будь ласка, початківцю.

koala написав:

Ви початківець, вам заборонили користуватися деякими функціями - а чим вам дозволили користуватися? Що ви вже вчили?

От якраз я виконав завдання в яких була умова використання - for, foreach. І тепер я повинен  виконати, та зрозуміти як працювати з масивами без них. Використовувати можу що завгодно, окрім зазначенних вище циклів.

10

Re: Допоможіть будь ласка, початківцю.

Вся документація відкрита. Ви прочитали про функцію key? Що саме вам там незрозуміло?

11

Re: Допоможіть будь ласка, початківцю.

Всім привіт. З попереднім завданням впорався, дякую всім за посилання - допомогли. *THUMBSUP*

Зараз маю нове завдання. Та, знов потрібна допомога.
Тож є масив, який треба відсортувати за числами що йдуть після квадратної дужки.
Може хто щось порадить? Чи допоможе з рішенням?
ось:

$market = ["clothes" => [
    "jeans" => [33 => ["men jacket", "women jacket"]],
    "shirt" => [22 => ["black", "brown"]],
    "jumpers"=> [34 => ["christmas jumpers" ,"cable jumpers"]],
        "Socks" => [12 => ["black socks"]]

12

Re: Допоможіть будь ласка, початківцю.

Знову без foreach?)
Функція *uasort*.
Щось типу

uasort($market["clothes"], function ($a, $b) {
    $keysA = array_keys($a);
    $keysB = array_keys($b);
    return end($keysA) <=> end($keysB);
});

P.S. Якщо це реальний проект, то я б поміняв краще структуру даних.

Подякували: Sensetivity1