Loading...

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

Feel_Up avatar Feel_Up 0 Точки

Взимане стойност от двуизмерен масив за използване във функция

Здравейте. Въпросът ми е относно курсът PHP Web Development Basics, урокът за функционално програмиране. Задачата е да се използва array_filter(), като трябва да вземем стойността на ключа 'години', когато е по малък от 11.

с foreach цикъл получавам резултата, дори без функцията array_filter(), но не знам какви стойности да използвам във array_filter(), за да получа решението ето входа:

$animals = [

[ 'name' => 'Waffles', 'type' => 'dog', 'age' => 12],

[ 'name' => 'Fluffy', 'type' => 'cat', 'age' => 14],

[ 'name' => 'Spelunky', 'type' => 'dog', 'age' => 4],

[ 'name' => 'Hank' , 'type' => 'dog', 'age' => 11],

];

Изхода трябва да е по същия начин, като елиминира кучетата, който са под 11 годишна възраст.

 

OFF TOPIC: И другият ми въпрос. Скъсах с Бил Гейтс и сега съм на Mint Cinnamon, но като имам грешки по кода, в //localhost/ ми показва просто бял екран. Как да получа error message от сорта, което получавах в Windows Ha Chrom-a

/използвам firefox/:

Warning: A non-numeric value encountered in C:\ ...\array_filter.php on line 5

Благодаря за вниманието!

Тагове:
0
PHP Web 24/04/2018 16:53:17
dvdty avatar dvdty 497 Точки

Можеш да подадеш всеки елемент на масива във фукнцията която array_filter приема. В случая този елемент също е масив и взимаме ключа му age.

$animals = array_filter($animals, function($animal) {
    return $animal['age'] < 11;
});

 

0
24/04/2018 18:28:06
Feel_Up avatar Feel_Up 0 Точки

Благодаря ти за отговора. Но като задам функцията по този начин ми принтира целия масив. Порових се дълбоко в нета и със следната функция получих искания резултат:

print_r(array_filter($animals, function($old) {
    if ($old['age'] > 10 && $old['type'] == 'dog') {
        return "<br />";
    }
}));

нямам идея защо съм сложил така ретърна, но ако няма стринг в него програмата не работи :D

 

0
dvdty avatar dvdty 497 Точки
array_filter($animals, function($animal) {
    return $animal['age'] > 10 && $animal['type'] == 'dog';
})

Търсиш това.

С <br /> работи, понеже string със съдържание (каквото и да било), auto cast-нат към bool дава true, но целия if е излишен.

0
24/04/2018 18:52:00
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.