|
| gentagelse i array Fra : zulup |
Dato : 07-09-07 19:02 |
|
Hej, Er der nogle der ka hjælpe med det:
Hvordan reducerer jeg gentagelser i array ?
fx. jeg har $R og $T:
$R = array(a, a, b, a, a, c, b, c);
$T = array(2, 1, 5, 4, 3, 7, 6, 7);
jeg vil gerne omdanne dem til $nyR og $nyT:
$nyR = array(a, b, c);
$nyT = array(10, 11, 14);
på forhånd tak
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Michael Zedeler (07-09-2007)
| Kommentar Fra : Michael Zedeler |
Dato : 07-09-07 19:17 |
|
zulup wrote:
> Hvordan reducerer jeg gentagelser i array ?
>
> fx. jeg har $R og $T:
> $R = array(a, a, b, a, a, c, b, c);
> $T = array(2, 1, 5, 4, 3, 7, 6, 7);
>
> jeg vil gerne omdanne dem til $nyR og $nyT:
> $nyR = array(a, b, c);
> $nyT = array(10, 11, 14);
Jeg tror egentlig at dette her kan gøre det:
$R = array_flip( array_flip( $R ) );
Ditto $T.
Mvh. Michael.
| |
zulup (07-09-2007)
| Kommentar Fra : zulup |
Dato : 07-09-07 19:34 |
|
Michael Zedeler wrote in
dk.edb.internet.webdesign.serverside.php:
> zulup wrote:
> > Hvordan reducerer jeg gentagelser i array ?
> >
> > fx. jeg har $R og $T:
> > $R = array(a, a, b, a, a, c, b, c);
> > $T = array(2, 1, 5, 4, 3, 7, 6, 7);
> >
> > jeg vil gerne omdanne dem til $nyR og $nyT:
> > $nyR = array(a, b, c);
> > $nyT = array(10, 11, 14);
>
> Jeg tror egentlig at dette her kan gøre det:
>
> $R = array_flip( array_flip( $R ) );
>
> Ditto $T.
>
> Mvh. Michael.
jeg fik desværre: Array ( [0] => a [1] => b ) ved at afprøve
array_flip. Den mistede også 'c' i $R.
Jeg spekulere om at man skal lave en eller anden form for
iteration for at finde gentagelser og gemme relevante keys i et
nyt array! Det kræver måske stor kode arbejde, som jeg ikke kan
rigtig overskue lige nu!
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Michael Zedeler (07-09-2007)
| Kommentar Fra : Michael Zedeler |
Dato : 07-09-07 19:42 |
|
zulup wrote:
> Michael Zedeler wrote in
> dk.edb.internet.webdesign.serverside.php:
>> zulup wrote:
>>> Hvordan reducerer jeg gentagelser i array ?
>>>
>>> fx. jeg har $R og $T:
>>> $R = array(a, a, b, a, a, c, b, c);
>>> $T = array(2, 1, 5, 4, 3, 7, 6, 7);
>>>
>>> jeg vil gerne omdanne dem til $nyR og $nyT:
>>> $nyR = array(a, b, c);
>>> $nyT = array(10, 11, 14);
>>
>> Jeg tror egentlig at dette her kan gøre det:
>>
>> $R = array_flip( array_flip( $R ) );
>>
>> Ditto $T.
>
> jeg fik desværre: Array ( [0] => a [1] => b ) ved at afprøve
> array_flip. Den mistede også 'c' i $R.
Det kan ganske enkelt ikke lade sig gøre. Jeg har lige kørt et eksempel
med dine data og det virker fint:
<?php
$a = array(a, a, b, a, a, c, b, c);
print "Startværdi: " . implode(', ', $a ) . "\n";
print "Slutværdi: " . implode(', ', array_flip( array_flip( $a ) ) )
.. "\n";
?>
Startværdi: a, a, b, a, a, c, b, c
Slutværdi: a, b, c
Mvh. Michael.
| |
Peter Brodersen (07-09-2007)
| Kommentar Fra : Peter Brodersen |
Dato : 07-09-07 20:39 |
|
On Fri, 07 Sep 2007 20:42:14 +0200, Michael Zedeler
<michael@zedeler.dk> wrote:
>>>> $R = array(a, a, b, a, a, c, b, c);
>>>> $T = array(2, 1, 5, 4, 3, 7, 6, 7);
>
>>>> $nyR = array(a, b, c);
>>>> $nyT = array(10, 11, 14);
>Det kan ganske enkelt ikke lade sig gøre. Jeg har lige kørt et eksempel
>med dine data og det virker fint:
Jeg tror, pointen er, at værdierne i det ene array er knyttet til
tilsvare værdierne i det andet array.
Det er en temmelig uhensigtsmæssig datamodel, men pointen er vel
omtrent:
- summen af værdien af nøgle 0, 1, 3 og 4 (hvor alle a'erne er) er 10,
- summen af værdien af nøgle 2 og 6 (hvor alle b'erne er) er 11
- summen af værdien af nøgle 5 og 7 (hvor alle c'erne er) er 14
Følgende kan måske gøre det, men her ender a, b og c med at være
nøgler. Det må vel også være hensigtsmæssigt nok:
<?php
$R = array(a, a, b, a, a, c, b, c);
$T = array(2, 1, 5, 4, 3, 7, 6, 7);
$nyR = array();
foreach($R as $key => $value) {
$nyR[$value]+=$T[$key];
}
// $nyR indeholder nu følgende værdi:
// array('a' => 10, 'b' => 11, 'c' => 14)
// bekræftelse:
var_dump($nyR);
?>
--
- Peter Brodersen
Kendt fra Internet
| |
|
|