Столкнулся с проблемой. Есть массив в виде
$arr = [
["name" => "Alex", "date" => "19.02.1990"],
["name" => "Smit", "date" => "24.12.1992"],
["name" => "Jack", "date" => "1.06.1988"],
];
Мне нужно ограничить его. То-есть чтобы было не более 100 ключей. Если массив достигает 100 значений то новое значение добавляется в начало а последнее удаляется. Как это сделать я знаю, но где-то видел код в пару строчек когда. Подскажите его пожалуйста, не могу найти. Либо как сделать лучше?
Ответ на ответ ниже. Так будет правильнее
if (count($arr) > 100) {
$arr = array_merge($new, $arr);
$arr = array_slice($arr, 0, 100);
}
Тут зависит от того, как вы новые данные добавляете и от массивов... Можно как-то так это делать:
$array = array("1" => "1",
"2" => "2",
"3" => "3",
"4" => "4",
"5" => "5",
"6" => "6",
"7" => "7"
);
$new = array("8" => "8",
"9" => "9",
"10" => "10"
);
function array_limit($arr,$added_arr,$count){
$arr = array_merge($arr,$added_arr);
$elems_count = count($added_arr);
$arr = array_slice($arr, 0+$elems_count, $count+$elems_count);
return $arr;
}
$new_array = array_limit($array,$new,5);
var_dump($new_array);
чем вам не нравится такой вариант?
if (count($array) > 100) {
array_unshift($element);
array_pop($array);
}
Продвижение своими сайтами как стратегия роста и независимости