"abc", "1"=> "aaa", "2"=> "aaa|abc", "3" => "| | | | | | | | | | | | | | |"> "abc", "1"=> "aaa", "2"=> "aaa|abc", "3" => "| | | | | | | | | | | | | | |"> "abc", "1"=> "aaa", "2"=> "aaa|abc", "3" => "| | | | | | | | | | | | | | |" />

maximaal aantal arrays krijgen

Hi need help getting repeated value from give array,below is the code which im trying get max values of $values[4]

$values = array(
    "0"=> "abc",
    "1"=> "aaa",
    "2"=> "aaa|abc",
    "3" =>  "| | | | | | | | | | | | | | | | ",
    "4" => "a|b|b|c|d|e|f|g",
    "5" => "1|2|3||4|5|6"
);


foreach ($values as $key) {
$prevalues = explode('|', $key);
$count[] = count($prevalues);
}
 print_r($counts);
 $counts = array_count_values($count);
 arsort($counts);
 echo $max= key($counts);


Array
 (
    [0] => 1
    [1] => 1
    [2] => 2
    [3] => 17
    [4] => 8
    [5] => 8
)
print_r($max );

Momenteel krijg ik $ max = 1; Ik heb $ max nodig om 8 te zijn.

1

4 antwoord

Waarom niet:

foreach ($values as $key=>$value)
    $max = max(substr_count($value,'|')+1,$max);

echo $max;

Geen array-splitsing of opslag van arrays. :)

1
toegevoegd
@ user1477117 Is dat een vraag?
toegevoegd de auteur iambriansreed, de bron
wat zijn de "meest" herhaalde waarden? elke waarde die binnen een reeks wordt herhaald? of alleen de top3?
toegevoegd de auteur Mohammer, de bron
hoe herhaalde waarde te krijgen
toegevoegd de auteur user1477117, de bron
@iambrainsreed: ik moet ook de meest herhaalde waarden in een array krijgen, hoe kan ik de herhaalde waarden gebruiken met uw methode
toegevoegd de auteur user1477117, de bron
@Mohammer-telling ($ waarden) die worden herhaald, in matrix 8 hierboven herhaald
toegevoegd de auteur user1477117, de bron

Als je al array $ hebt geteld met de waarden en je hoeft alleen de maximumwaarde in de array te vinden zoals ik denk dat je vraagt, dan is er al een ingebouwde functie voor in php.

$max = max($counts);

$ max is gelijk aan 17.

Documentation: http://php.net/manual/en/function.max.php

Met betrekking tot het vinden van de herhaalde herhaalde waarde in de array volgens uw commentaar op iambrainsreed:

U zou array_count_values ​​() kunnen gebruiken.

$valueCount = array_count_values($counts);
print_r($valueCount);

Zou uitvoeren:

Array
(
    [1] => 2
    [2] => 1
    [17] => 1
    [8] => 2 
)

From there you can use that data for what you need.
Documentation: http://php.net/manual/en/function.array-count-values.php

1
toegevoegd
beter nog, het idee van iambriansreed om substr_count() op te nemen, daar kun je de documentatie over krijgen. php.net/manual/en/function.substr-count.php
toegevoegd de auteur Roger, de bron
Bedankt dat het werkt
toegevoegd de auteur user1477117, de bron

U kunt max() gebruiken om de hoogste waarde in een array te vinden, hier is een voorbeeld

echo max(array(1, 5, 7, 2, 3));

This should give you 17

foreach ($values as $item)
{
    $temp[] = substr_count($item, "|") + 1;
}

echo max($temp);
0
toegevoegd
@ user1477117 zie mijn bijgewerkte antwoord
toegevoegd de auteur slash197, de bron
maar ik kan niet maximumwaarden van bovengenoemde code krijgen die im gebruikend
toegevoegd de auteur user1477117, de bron

Je zou waarschijnlijk substr_count ($ key, '|') + 1 kunnen gebruiken in plaats van exploderen .

EDIT: I am thinking that I don't really understand the question clearly, perhaps could you write more clearly? Why are you using the key function?

0
toegevoegd