Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с задачей по php

Степан Шабанов Ученик (9), закрыт 4 года назад
Дан массив числами, например: ['10', '20', '30', '50', '235', '3000']. Выведите на экран только те числа из массива, которые начинаются на цифру 1, 2 или 5.
Лучший ответ
Андрей Высший разум (425808) 4 года назад
echo implode(', ', array_filter(['10', '20', '30', '-50', '235', '3000'], function($val) {
return in_array(ltrim($val, '-')[0], ['1', '2', '5']);
}));

Если отрицательные числа невозможны, ещё проще:

echo implode(', ', array_filter(['10', '20', '30', '50', '235', '3000'], function($val) {
return in_array($val[0], ['1', '2', '5']);
}));
Степан ШабановУченик (9) 4 года назад
мне бы желательно с циклом foreach и for
Андрей Высший разум (425808) foreach (['10', '20', '30', '-50', '235', '3000'] as $val) { if (in_array($val[0], ['1', '2', '5']) { echo $val, ' '; } }
Остальные ответы
Yandex Mail Ученик (104) 9 месяцев назад
Во-первых, в данном случае, массив нужно привести к строке. А потом выполнить условие, при котором решим задачу.

Например:

$arr = [10, 20, 30, 50, 235, 3000];
foreach ($arr as $elem) {
$elem = (string)$elem;
if ($elem[0] == 1 || $elem[0] == 2 || $elem[0] == 5) {
echo $elem;
}}

Этот код короткий и полностью рабочий.
Похожие вопросы