Array_slice процент многомерного массива

У меня есть интересная проблема. У меня есть многомерный массив, подобный этому:

Array
(
    [0] => Array
        (
            [0] => 4
            [1] => 4
            [2] => 4
            [3] => 4
            [4] => 3
            [5] => 3
            [6] => 3
            [7] => 2
        )
    [1] => Array
        (
            [0] => 4
            [1] => 4
            [2] => 3
            [3] => 3
            [4] => 2
        )
)

Я хотел бы иметь возможность использовать array_slice для удаления процента строк из каждого вложенного массива.

Согласно предыдущему сообщению здесь (array_slice в многомерном массиве?), я могу достаточно легко удалить фиксированное количество строк. Но скажем, я хотел удалить 70% каждого вложенного массива, который имеет разное количество строк, я немного застрял.

Если вы просматриваете каждый вложенный массив как $sub_array, вы можете установить смещение (второй аргумент) на 70% от count($sub_array), чтобы сохранить только последние 30%, или установить смещение на 0 и установить предел (третий аргумент) на 30 % того же count, чтобы оставить только первые 30% и удалить последние 70%.

rickdenhaan 07.03.2019 23:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
107
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

что-то типа....

<?php

$items = array ( 
        array ( 1, 7, 23, 32, 64, 77 ), 
        array ( 23, 32, 64, 77 ), 
        array ( 1, 5, 7, 13, 16, 23, 32, 64, 77 )
        );

// (?), remove, or keep

$type = 'remove';

// percentage (%)

$percent = 60;

$format = $type == 'remove' ? ( 100 - $percent ) : $percent;

foreach ( $items AS $array => $values )
{
    $max = round ( ( ( count ( $values ) * $format ) / 100 ) );

    $items[$array] = array_slice ( $values, 0, $max );
}

print_r ( $items );

?>

Другие вопросы по теме