Итак, у меня есть этот массив:

enter image description here

Я не знаю, понятно ли это, но в этом массиве есть много элементов с одинаковыми именами, я хочу подсчитать эти элементы и показать, как я создаю массив:

 foreach ($rowa as $rowsa)
{
    $sql = "SELECT count(*) as NUMBER FROM BANDZENDINGEN WHERE FB_AFGESLOTEN = 'F' AND FB_AKTIEF = 'T' AND FI_AFVOERKANAAL = 1 AND FI_RAYONID = $rowsa  AND FI_VERRIJKINGID < 1;";
    $sfh = $dbh->prepare($sql);
    $sfh->execute();
    $row = $sfh->fetchAll(PDO::FETCH_COLUMN, 0);

    array_push($row, $rows['FC_RAYON']);
    print_r($row);

}

Я уже пробовал это:

количество повторяющихся элементов в массиве в php

Кажется, этот ответ не работает для меня, но, возможно, я делаю что-то не так.

Кстати, $ row ['FC_RAYON'] из другого запроса, он не имеет отношения к этому вопросу, но если вы хотите его увидеть, я отредактирую свой пост, чтобы показать его.

Так я должен сделать? не могли бы вы помочь.

РЕДАКТИРОВАТЬ

Лучше посмотрим на массив:

 Array ( [0] => 2 [1] => RT-SCB-PB01 ) 
 Array ( [0] => 0 [1] => RT-SCB-PB01 ) 
 Array ( [0] => 3 [1] => RT-SCB-PB01 ) 
 Array ( [0] => 1 [1] => ASDC-PBSN ) 
 Array ( [0] => 0 [1] => ASDC-PBSN ) 
 Array ( [0] => 0 [1] => ASDC-PBSN ) 
 Array ( [0] => 0 [1] => ASDC-PBSN ) 
 Array ( [0] => 1 [1] => ASDW-PBSN ) 

Это очень маленькая часть массива.

РЕДАКТИРОВАТЬ 2

 Array
(
  [0] => 2
  [1] => RT-SCB-PB01
)

 Array
(
  [0] => 2
  [1] => RT-SCB-PB01
)

Array
(
  [0] => 1
  [1] => RT-SCB-PB01
)

Array
(
  [0] => 3
  [1] => RT-SCB-PB01
)

Array
(
  [0] => 2
  [1] => ASDC-PBSN
)

Array
(
  [0] => 2
  [1] => ASDC-PBSN
)

Array
(
  [0] => 1
  [1] => ASDC-PBSN
)

Array
(
  [0] => 1
  [1] => ASDW-PBSN
)

Array
(
  [0] => 0
  [1] => ASDW-PBSN
)

Array
(
  [0] => 0
  [1] => ASDW-PBSN
)

Так что это здесь лучше взглянуть на массив, данные в массиве разные, потому что это очень активная база данных

РЕДАКТИРОВАТЬ 3

Если вы ввели это мой результат, вы можете увидеть его здесь:

https://mega.nz/#!uvpylWIWIWIWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWiWi_WC_W5 открыть краской

-2
nordin 12 Апр 2019 в 10:35

2 ответа

Лучший ответ

array_count_values

Array_count_values () возвращает массив, используя значения массива в качестве ключей и их частоту в массиве в качестве значений.

$varArray = array(); // take a one empty array

foreach ($rowa as $rowsa)
{
    $sql = "SELECT count(*) as NUMBER FROM BANDZENDINGEN WHERE FB_AFGESLOTEN = 'F' AND FB_AKTIEF = 'T' AND FI_AFVOERKANAAL = 1 AND FI_RAYONID = $rowsa  AND FI_VERRIJKINGID < 1;";
    $sfh = $dbh->prepare($sql);
    $sfh->execute();
    $row = $sfh->fetchAll(PDO::FETCH_COLUMN, 0);

    array_push($row, $rows['FC_RAYON']);
    //print_r($row);
    //array_push($varArray,$rows['FC_RAYON']); // Also May I think $rows['FC_RAYON'] is give value like RT-SCB-PB01,ASDC-PBSN etc.
    array_push($varArray,$row[1]); // I have push the send value of array like RT-SCB-PB01,ASDC-PBSN etc. and make in single array.
}

$dupArrays = array_count_values($varArray); // It will return Counts all the values of an array
echo 'Total No Items: '.count($dupArrays).'<br><br>';
echo "<pre>";
print_r($dupArrays);
echo "</pre>";

Результат будет:

Total No Items: 3

Array
(
    [RT-SCB-PB01] => 3 // Count of duplicate value of RT-SCB-PB01 is 3
    [ASDC-PBSN] => 4 // Count of duplicate value of ASDC-PBSN is 3
    [ASDW-PBSN] => 1 // Count of duplicate value of ASDW-PBSN is 3
)

Получить с помощью метода foreach

foreach($dupArrays as $key => $value){
    echo $key.' Count '.$value.' times.';
    echo "<br>";
}

Выход:

RT-SCB-PB01 Count 3 times.
ASDC-PBSN Count 4 times.
ASDW-PBSN Count 1 times.
4
R P 12 Апр 2019 в 09:06

Не могли бы вы просто сделать один запрос, как это:

$sql = "SELECT FI_RAYONID,COUNT(FI_RAYONID) as NUMBER 
    FROM BANDZENDINGEN 
    WHERE FB_AFGESLOTEN = 'F' 
    AND FB_AKTIEF = 'T' 
    AND FI_AFVOERKANAAL = 1  
    AND FI_VERRIJKINGID < 1 
    GROUP BY FI_RAYONID ;";
$sfh = $dbh->prepare($sql);
$sfh->execute();
$result = $sfh->fetch(PDO::FETCH_KEY_PAIR);

Тогда $ result становится массивом идентификаторов и счетчиков с ключами, так что вы можете работать с ним гораздо проще

0
jameson2012 14 Апр 2019 в 18:26