dubbele waarden uit array groeperen en de frequentie optellen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java Developer / Overheid / Complexiteit

Functieomschrijving Wil jij als Java Developer een bijdrage leveren aan een veiliger Nederland en je als Java Developer bezig houden met zeer complexe bedrijfskritische applicaties? Lees dan snel verder! Doorontwikkelen bedrijfskritische applicaties; Aanpassingen maken in de bestaande applicatie; Vertalen van jouw visie op continuous integration en continuous delivery; Debuggen van de applicatie; In gesprek gaan met eindgebruikers om verbetervoorstellen op te halen. Functie-eisen Minimaal HBO-werk en denkniveau; Minimaal 5 jaar werkervaring als Java Developer; Je bent minimaal OCP-Java SE 6 gercertificeerd; Je hebt kennis van Webservices en Continuous Integration; Je bent analytisch sterk en zowel klant- als resultaatgericht. Bedrijfsomschrijving Binnen

Bekijk vacature »

Front-end Developer Vue.js Meewerkend voorman

Functieomschrijving Ben jij een ervaren Front-end Developer, bedreven in Vue.js en lijkt het jou gaaf om als meewerkend voorman verantwoordelijk te zijn voor de ontwikkeling van drie junior ontwikkelaars? Werk jij graag aan diverse projecten t.b.v. het vergroten van klant- en medewerkerbeleving? Lee dan snel verder! Het onderhouden, ontwikkelen en testen van front-end software van diverse klant- en medewerkersapplicaties; Het ontwikkelen van maatwerk front-end oplossingen in Vue.js en participeren in een scrumteam; Verantwoordelijk voor het begeleiden en coachen van drie junior front-end developers; Verantwoordelijk voor code-reviews en het opstellen van de juiste documentatie zoals userstories en api ontwerp; Participeren in

Bekijk vacature »

Johan M

Johan M

28/12/2007 00:04:00
Quote Anchor link
Beste mede PHPhulpers,

ik heb een scriptje dat cijfers (id's) in een array plaatst, deze kan er bijvoorbeeld zo uit komen te zien:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
Array
(
    [0] => 1
    [1] => 2
    [2] => 2
    [3] => 2
    [4] => 2
    [5] => 3
    [6] => 3
)


Nu wil ik dat de waarden worden gegroepeerd (dan krijg je dus alleen de losse waarden 1, 2 en 3), maar dat er ook wordt aangegeven hoeveel keer deze waarden voorkomen. Los van elkaar krijg ik dit voor elkaar, maar het lukt me dit niet later weer samen te voegen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// $_SESSION['cart'] ziet er bijvoorbeeld zo uit: 3,3,2,2,2,2,1


 // Controleer of de sessie bestaat
 if (isset($_SESSION['cart']))
 {

  // Haal de sessie uit elkaar
  $cart = explode(',' , $_SESSION['cart']);

  // Sorteer de sessie  
  sort($cart);

   // Unieke waarden uit de array halen
   $unique1 = array_unique($cart);

   // Aantallen keer dat elke waarde voorkomt in de array
   $count1  = array_count_values($cart);  

   // Zorg ervoor dat zowel $unique en $qount dezelfde array-id's krijgen
   foreach ($unique1 as $value)
   {
    $unique2[] = $value;
   }

   foreach ($count1 as $value)  
   {
    $count2[] = $value;
   }

echo 'Waarden: <pre>';
print_r ($unique2);
echo '</pre>';

// Resultaat:

// Array
// (
//     [0] => 1
//     [1] => 2
//     [2] => 3
// )

/////////////////////////////////////////

echo '<br>Aantallen: <pre>';
print_r ($count2);
echo '</pre>';

// Resultaat:

// Array
// (
//     [0] => 1
//     [1] => 4
//     [2] => 2
// )
}


Wat ik uiteindelijk wil is dat er dit wordt weergegeven:

waarde 1 komt 1 keer voor,
waarde 2 komt 4 keer voor,
waarde 3 komt 2 keer voor,

of iets dergelijks, met dit resultaat zou ik waarschijnlijk wel wat kunnen.

Ik heb mijn vraag en bevindingen tot zo ver redelijk uitgebreid geformuleerd, wellicht denk ik te moeilijk en heb ik een of andere functie over het hoofd gezien, of er simpelweg niet aan gedacht. Ik zou het op prijs stellen als iemand mij met dit probleem verder kan helpen. Als ik er over na denk lijkt het me dat het makkelijk te moet realiseren zijn, maar ik krijg het op het moment simpelweg niet voor elkaar.

Hopelijk heeft iemand een oplossing voor me,
alvast bedankt, Johan.
 
PHP hulp

PHP hulp

12/08/2020 11:52:35
 
Jan Koehoorn

Jan Koehoorn

28/12/2007 00:05:00
Quote Anchor link
Uit mijn hoofd: array_count_values.
 
Johan M

Johan M

28/12/2007 00:08:00
Quote Anchor link
Zo, dat noem ik nog eens een snelle reactie!
Ik dacht dus duidelijk te moeilijk, nu ik array_count_values bekijk op php.net zou dat best wel eens moeten kunnen gaan werken, ik ga even een poging wagen.

Tnx Jan,
grz. Johan.

Ps.: ik heb het nu zo opgelost:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
foreach (array_count_values($cart) as $key => $value) {
    echo 'Waarde ' . $key . ' komt ' . $value . ' keer voor<br>';
}
Is het verstandig het "array_count_values($cart)" gedeelte binnen deze foreach() te zetten zoals het nu staat, of kan dit beter via een varabele? Ik vermoed dat dit weinig tot niets uitmaakt, maar gewoon om even zeker te zijn?
Gewijzigd op 01/01/1970 01:00:00 door Johan M
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.