Dubbele waarden in array
Ik zou graag hebben dat enkel de waarden die meer dan 1 keer te voorschijn komen in de array overschieten ...
dus als ik bijvoorbeeld de volgende waarden in een array heb: 4, 2, 4, 3, 1, 5, 2, 4
dat ik dus enkel nog de waarden 4 en 2 overhoud omdat deze meerdere keren voorkomen in de array
heeft iemand enig idee hoe ik dit zou kunnen doen?
Code (php)
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
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
<?
# Rijtje met getalletjes
$array = array(1,2,3,2,3,4,3,5,4,4,5,5,5,5,4);
# Hoogste getal zoeken
for($i=0;$i<=(count($array)-1);$i++)
{
if($array[$i] > $num || !$num)
$num = $array[$i];
}
# Loopen tot en met he hoogste getal
for($j=0;$j<=$num;$j++)
{
# Teller op 0
$aantal = 0;
# Loopen door de array
for($k=0;$k<=(count($array)-1);$k++)
{
# Kijken offie uitzelfde is
if($array[$k] == $j)
$aantal++;
}
# Stop de uitkomsten in een array
$cijfers[$j] = $aantal;
}
# Uitlezen
foreach($cijfers as $key => $value)
echo "\$cijfers[" . $key . "] = " . $value . "<br />";
?>
# Rijtje met getalletjes
$array = array(1,2,3,2,3,4,3,5,4,4,5,5,5,5,4);
# Hoogste getal zoeken
for($i=0;$i<=(count($array)-1);$i++)
{
if($array[$i] > $num || !$num)
$num = $array[$i];
}
# Loopen tot en met he hoogste getal
for($j=0;$j<=$num;$j++)
{
# Teller op 0
$aantal = 0;
# Loopen door de array
for($k=0;$k<=(count($array)-1);$k++)
{
# Kijken offie uitzelfde is
if($array[$k] == $j)
$aantal++;
}
# Stop de uitkomsten in een array
$cijfers[$j] = $aantal;
}
# Uitlezen
foreach($cijfers as $key => $value)
echo "\$cijfers[" . $key . "] = " . $value . "<br />";
?>
ik kan nu al achterhalen hoeveel tekstvakken er zijn ingevuld ... nu moet ik enkel nog filteren uit de array
ff in pseudo code opstellen:
$fields = aantal ingevulde tekstvakken
filter uit array
--> waarden die $fields x voorkomen
was het maar zo gemakkelijk :-p iemand enig idee hoe ik dit in werkende php code kan schrijven?
greetz Blackmoon
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?
function get_double($array = array()) {
$single = array();
$double = array();
foreach ($array as $value) {
$target = !in_array($value, $single) ? 'single' : 'double';
array_push(${$target}, $value);
}
return array_unique($double);
}
?>
function get_double($array = array()) {
$single = array();
$double = array();
foreach ($array as $value) {
$target = !in_array($value, $single) ? 'single' : 'double';
array_push(${$target}, $value);
}
return array_unique($double);
}
?>
Zo gebruiken:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?
$numbers = array(
4,
2,
4,
3,
1,
5,
2,
4
);
$doubles = get_double($numbers);
?>
$numbers = array(
4,
2,
4,
3,
1,
5,
2,
4
);
$doubles = get_double($numbers);
?>
$doubles is nu een array met de dubbele waarden uit $numbers waarbij een waarde maximaal 1 keer voorkomt. In dit voorbeeld zou
dus dit als output geven:
Array ( [1] => 2 [2] => 4 )
Gewijzigd op 11/08/2004 17:21:00 door dutchcamel