Вот код:
$arr = ["Ceylon", "Fish", "Apple", "MongoDB", "123456789990"];
usort($arr,function($a, $b){
return strlen($b)||strlen($a);
});
$arr2 = array_slice($arr, 0, 2);
echo join(", ",$arr2);
Если в методе array_slice($arr, 0, 2);
указать значения 2 выведет 123456789990, MongoDB
а если мы укажем array_slice($arr, 0, 5);
то выведет 123456789990, MongoDB, Fish, Apple, Ceylon
все 5 значения массива, мне нужно чтоб выводилось только самые длинные значения массива, или на оборот саммые короткие, помогите решить проблему, я новичок в PHP.
...мне нужно чтоб выводилось только самые длинные значения массива, или на оборот саммые короткие...
Та не понятно, какое слово считается длинным, а какое коротким, 'test' - это длинное или короткое, крч дам примерчики, выберете сами:
Например есть массив:
$array = ["Ceylon", "Fish", "Apple", "MongoDB", "Seven77"];
1) Сортировка по количеству символов:
usort($array, function ($a, $b) {
return mb_strlen($b) - mb_strlen($a);
});
var_dump($array);
Результат:
array(5) {
[0] => string(7) "MongoDB"
[1] => string(7) "Seven77"
[2] => string(6) "Ceylon"
[3] => string(5) "Apple"
[4] => string(4) "Fish"
}
2) Только те значение, длина которых больше или равно $length = 5
:
$result = [];
$length = 5;
foreach ($array as $key => $value) {
if ($length <= mb_strlen($value)) {
$result[] = $value;
}
}
var_dump($result);
Результат:
array(4) {
[0] => string(6) "Ceylon"
[1] => string(5) "Apple"
[2] => string(7) "MongoDB"
[3] => string(7) "Seven77"
}
3) Найти максимальную длину, и выбрать элементы с этой длиной:
$result = [];
$length = 0;
array_map(function($v) use (&$length) {
if ($length < mb_strlen($v)) {
$length = mb_strlen($v);
}
}, $array);
foreach ($array as $key => $value) {
if ($length == mb_strlen($value)) {
$result[] = $value;
}
}
var_dump($result);
Результат:
array(2) {
[0] => string(7) "MongoDB"
[1] => string(7) "Seven77"
}
usort($arr,function($a, $b){
return (strlen($a)==strlen($b)? 0 : (strlen($a)<strlen($b)? 1: -1));
});
После выводите нужное кол-во элементов с начала массива =) самые длинные в начале, короткие в конце.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Сколько времени копался, так и не смог разобратьсяНе редактируются данные в базе MySQL
Есть строка: Сочи (Адлер) (Россия), из которой мне нужно изъять текст, который находится в последих скобкахТо есть, текст Россия