Как удалить строки из массива с отсутствующими столбцами - PullRequest
0 голосов
/ 13 мая 2019

Хорошо ... Итак, у меня есть система, которая предоставляет мне множество предметов. Эти предметы показаны так:

Array
(
    [1] => Array
        (
            [protocol] => ip
            [dst-address] => 10.0.0.1
            [tx] => 0
            [rx] => 0
            [tx-packets] => 0
            [rx-packets] => 0
        )

    [2] => Array
        (
            [protocol] => ip
            [dst-address] => 10.0.0.112
            [tx] => 0
            [rx] => 0
            [tx-packets] => 0
            [rx-packets] => 0
        )

    [3] => Array
        (
            [protocol] => ip
            [dst-address] => 10.0.0.130
            [tx] => 0
            [rx] => 0
            [tx-packets] => 0
            [rx-packets] => 0
        )

    [4] => Array
        (
            [tx] => 0
            [rx] => 0
            [tx-packets] => 0
            [rx-packets] => 0
        )

    [5] => Array
        (
            [protocol] => ip
            [dst-address] => 10.0.0.5
            [tx] => 0
            [rx] => 496
            [tx-packets] => 0
            [rx-packets] => 1
        )

    [6] => Array
        (
            [protocol] => ip
            [dst-address] => 10.0.0.6
            [tx] => 0
            [rx] => 528
            [tx-packets] => 0
            [rx-packets] => 1
        )

    [7] => Array
        (
            [protocol] => ip
            [dst-address] => 10.0.0.16
            [tx] => 624
            [rx] => 0
            [tx-packets] => 1
            [rx-packets] => 0
        )

    [8] => Array
        (
            [protocol] => ip
            [dst-address] => 10.0.0.24
            [tx] => 0
            [rx] => 448
            [tx-packets] => 0
            [rx-packets] => 1
        )

    [9] => Array
        (
            [protocol] => ip
            [dst-address] => 10.0.0.31
            [tx] => 0
            [rx] => 528
            [tx-packets] => 0
            [rx-packets] => 1
        )

    [10] => Array
        (
            [protocol] => ip
            [dst-address] => 10.0.0.44
            [tx] => 10592
            [rx] => 13200
            [tx-packets] => 20
            [rx-packets] => 28
        )

Видите ли, идентификатор записи 4 пропускают некоторые столбцы в таблице.

В PHP, как я могу удалить ошибочно строки из массива? Я хочу, чтобы массив был исправлен правильно, чтобы переупорядочить его, чтобы показать такие вещи, как: - Top TX - топ rx - лучшие tx-пакеты - лучшие rx пакеты - Какой dst-адрес имеет наибольшее количество tx или rx или tx-пакетов или rx-пакетов.

Для информации, этот массив динамический. Мой PHP-код извлекает его из устройства (маршрутизатора) по циклу while (true) (без хранения данных).

1 Ответ

0 голосов
/ 13 мая 2019
$arrayVar = []; // Replace with your outter array;
$correctCount = 6;
$index = 0;
foreach($arrayVar as $subArray) {
  if(count($subArray) !== $correctCount) {
    unset($arrayVar[$index];
  }
  $index++;
}

Это перебирает массив, подсчитывает, что подмассивы имеют правильное количество элементов, и, если нет, удаляет их. Индекс увеличивается на 1 при каждом проходе, поэтому мы знаем, где удалить неподходящий подмассив.

Вы можете изменить количество на правильное количество элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...