Ограничить массив со смещением

171
20 февраля 2021, 00:50

Столкнулся с проблемой. Есть массив в виде

$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);
}
Answer 1

Тут зависит от того, как вы новые данные добавляете и от массивов... Можно как-то так это делать:

$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);
Answer 2

чем вам не нравится такой вариант?

if (count($array) > 100) {
    array_unshift($element);
    array_pop($array); 
}
READ ALSO
Как вывести {variables: “{”money1“:3,”money2“:3}”}

Как вывести {variables: “{”money1“:3,”money2“:3}”}

Из бд json возвращает, записанные в него переменные money1 и money2, в таком виде:

163
Заполнение таблицы php при изменении combobox на этой же странице

Заполнение таблицы php при изменении combobox на этой же странице

Есть запрос который заполняет combobox на сайтеХочу чтобы при выборе какой либо позиции заполнялась таблица

170
конвертировать html div блок в pdf

конвертировать html div блок в pdf

На сайте есть блок

173