/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Strukturering af array
Fra : Tom


Dato : 08-03-07 10:56

Jeg har tre forskellige Types (Block, Page, Media)
Jeg ønsker et array der har de tre typer som index og som value et array
bestående af arrays.

Jeg har forsøgt med array_merge mm. uden held.

Koden er her:

$data = mysql_query ($SQL, $this->Link) or die(mysql_error
($this->Link));
while ($hr = mysql_fetch_array ($data, MYSQL_ASSOC))
{
$arr_blocks [$hr ["Type"]] [] = $hr;
}

Ulempen her er at jeg har lagt den (redundante) dimension ind i arrayet men
den skulle gerne væk fra hver enkelt indgang så jeg endte med et array med
tre indgange i og i hver af disse indgange 0-n selvstændige arrays
($hr'erne)

Er der en smart måde at gøre det på?



 
 
Bertel Lund Hansen (08-03-2007)
Kommentar
Fra : Bertel Lund Hansen


Dato : 08-03-07 11:20

Tom skrev:

> Er der en smart måde at gøre det på?

Prøv at forklare hvad du egentlig vil. Så er det nemmere at se
hvilke løsninger der er bedst.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Tom (08-03-2007)
Kommentar
Fra : Tom


Dato : 08-03-07 12:08


"Bertel Lund Hansen" <unospamo@lundhansen.dk> wrote in message
news:xae8ftqqsw8q$.mq6z15ui3i5o$.dlg@40tude.net...
> Tom skrev:
>
>> Er der en smart måde at gøre det på?
>
> Prøv at forklare hvad du egentlig vil. Så er det nemmere at se
> hvilke løsninger der er bedst.


"Jeg ønsker et array der har de tre typer som index og som value et array
bestående af arrays."

"så jeg endte med et array med
tre indgange i og i hver af disse indgange 0-n selvstændige arrays "


Hvad mangler du for at forstå hvad jeg vil?



Bertel Lund Hansen (08-03-2007)
Kommentar
Fra : Bertel Lund Hansen


Dato : 08-03-07 13:10

Tom skrev:

> "Jeg ønsker et array der har de tre typer som index og som value et array
> bestående af arrays."

Du forklarer kun hvordan du vil have lavet den implementation du
selv har planlagt, men hvem siger f.eks. at et array er den
bedste måde at løse det overordnede problem på?

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Tom (08-03-2007)
Kommentar
Fra : Tom


Dato : 08-03-07 13:45


"Bertel Lund Hansen" <unospamo@lundhansen.dk> wrote in message
news:gp5ph0ne7zee$.5cftoaql2cru$.dlg@40tude.net...
> Tom skrev:
>
>> "Jeg ønsker et array der har de tre typer som index og som value et array
>> bestående af arrays."
>
> Du forklarer kun hvordan du vil have lavet den implementation du
> selv har planlagt,

Godt spottet


> men hvem siger f.eks. at et array er den
> bedste måde at løse det overordnede problem på?

Det er ikke det der er spørgsmålet, men tak for hjælpen ellers.


Mon ikke der er nogen der kan gennemskue problemstilligen?



Leif Neland (09-03-2007)
Kommentar
Fra : Leif Neland


Dato : 09-03-07 13:01


"Tom" <no@spam.please> skrev i en meddelelse
news:45f0052d$0$90274$14726298@news.sunsite.dk...
> > men hvem siger f.eks. at et array er den
> > bedste måde at løse det overordnede problem på?
>
> Det er ikke det der er spørgsmålet, men tak for hjælpen ellers.
>
>
> Mon ikke der er nogen der kan gennemskue problemstilligen?
>

Det er lidt af en udfordring at gå baglæns fra den implementering til det
overordnede problem, og derefter finde en løsning på det.

Det tyder på at din løsningsmodel ikke er god, når du ikke kan få det til
at fungere

Leif




Tom (09-03-2007)
Kommentar
Fra : Tom


Dato : 09-03-07 13:17

> Det tyder på at din løsningsmodel ikke er god, når du ikke kan få det til
> at fungere

Tak til Bertel for at afspore tråden.
At løsningen ikke skulle være den rette var et forsøg på en feberredning fra
Bertels side, da han blev gjort opmærksom på at han ikke havde læst tråden
og hellere ville angribe fra en ny front end at indrømme han burde have
forberedt sig bedre og bare ladet den være.

Hvis der er nogen der er i stand til at forholde sig til det den konkrete
problemstilling ville det være fantastisk



Bertel Lund Hansen (09-03-2007)
Kommentar
Fra : Bertel Lund Hansen


Dato : 09-03-07 19:01

Tom skrev:

> Tak til Bertel for at afspore tråden.

Bevares.

> At løsningen ikke skulle være den rette var et forsøg på en feberredning fra
> Bertels side, da han blev gjort opmærksom på at han ikke havde læst tråden
> og hellere ville angribe fra en ny front end at indrømme han burde have
> forberedt sig bedre og bare ladet den være.

Sikke dog en gang pladder. Desværre skriver du kun under navnet
"Tom", hvilket bevirker at jeg ikke kan filtrere på det, for
ellers skulle jeg nok sikre at jeg ikke spildte mere tid på dig i
fremtiden.

Men at sidde og optimere noget kode ud i den blå luft er
idiotarbejde. Tænk f.eks. hvis der fandtes en enkelt PHP-kommando
der kunne det du havde brug for, eller hvis der fandtes en
velbeskrevet algortime til det.

Når du spiller med fordækte kort, begrænser du den hjælp du vil
kunne få, og når du bliver flabet på baggrund af et oprigtigt
forsøg på at hjælpe, så er du bare useriøs.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Arne Feldborg (09-03-2007)
Kommentar
Fra : Arne Feldborg


Dato : 09-03-07 20:00

"Tom" <no@spam.please> skrev Fri, 9 Mar 2007 13:16:45 +0100


>Tak til Bertel for at afspore tråden.
>
Jeg skal gerne medgive, at Bertel optræder både bedrevidende og
nedladende i en grad der ikke burde finde sted her i gruppen. Men på den
anden side opnår du altså ikke noget ved at snerre efter de folk du
gerne vil have til at hjælpe dig.


>Hvis der er nogen der er i stand til at forholde sig til det den konkrete
>problemstilling ville det være fantastisk
>
> while ($hr = mysql_fetch_array ($data, MYSQL_ASSOC))
> {
> $arr_blocks [$hr ["Type"]] [] = $hr;
> }
>
Hvor får du "Type" fra.? Skulle det ikke være [$type] ?

Har du prøvet noget i den her stil:

while ($hr = mysql_fetch_array ($data, MYSQL_ASSOC))
{
   $arr_blocks [$type][] = $hr;
}
echo '<pre>';
print_r($arr_blocks);

Hvis det ikke er det du efterlyser, så bliver du nok nødt til at poste
er eksempel på det array du har nu, og så det du gerne vil have.



--
mvh, A:\Feldborg

Slægtsforskning og lokalhistorie i midt- vestjylland
http://hammerum-herred.dk/

Tom (09-03-2007)
Kommentar
Fra : Tom


Dato : 09-03-07 20:45


> Jeg skal gerne medgive, at Bertel optræder både bedrevidende og
> nedladende i en grad der ikke burde finde sted her i gruppen.

Helt enig. Da han startede i denne gruppe var han ganske afdæmpet og
sympatisk, men gradvist som han ikke følte behov for voldsomt meget hjælp er
hans arrogance så tiltaget :-/

> Men på den
> anden side opnår du altså ikke noget ved at snerre efter de folk du
> gerne vil have til at hjælpe dig.

Det er vi også enig i.
Der har så ikke været nogen der ville hjælpe mig men et par stykker der
snakkede om et andet (og for tråden uinteressant) emne.


>> while ($hr = mysql_fetch_array ($data, MYSQL_ASSOC))
>> {
>> $arr_blocks [$hr ["Type"]] [] = $hr;
>> }
>>
> Hvor får du "Type" fra.? Skulle det ikke være [$type] ?

Type kommer fra den aktuelle række i databasen.

Den kan antage tre værdier: Block, Page, Media.
Jeg ønsker så at gruppere de rækker der kommer ud på denne type.

Ovenfor har jeg grupperet dem ved at smide Type på som dimension.
Dette gør brugen af arrayet besværligt.

Ideelt set skulle Type være nøglen til en værdi der bestod af et array med
arrays i.

Jeg ønsker at ende med:

$arr_blocks ["Block"] = array ($hr, $hr, ...);
$arr_blocks ["Type"] = array ($hr, $hr, ...);
$arr_blocks ["Media"] = array ($hr, $hr, ...);

De $hr der er i ovenstående arrays er fra den SQL der hedder noget i retning
af "SELECT * FROM [table]"

Måske denne virker:

$arr_blocks [$hr ["Type"]] = array_merge($arr_blocks [$hr ["Type"]], $hr);

(Selvom den godt nok ikke er køn

Jeg vil jo helst undgå hardcoding så jeg kan tilføje Types senere uden at
ændre koden.

Tak for hjælpen




Arne Feldborg (09-03-2007)
Kommentar
Fra : Arne Feldborg


Dato : 09-03-07 22:36

"Tom" <no@spam.please> skrev Fri, 9 Mar 2007 20:45:04 +0100


>> Hvor får du "Type" fra.? Skulle det ikke være [$type] ?
>
>Type kommer fra den aktuelle række i databasen.
>
Så vil jeg da også mene , at det skulle være $type ?

>Ideelt set skulle Type være nøglen til en værdi der bestod af et array med
>arrays i.
>
>Jeg ønsker at ende med:
>
>$arr_blocks ["Block"] = array ($hr, $hr, ...);
>$arr_blocks ["Type"] = array ($hr, $hr, ...);
>$arr_blocks ["Media"] = array ($hr, $hr, ...);
>
Det vil jeg faktisk også mene du lige netop får med det forslag jeg
sendte dig - Men bemærk brugen af [], den er lidt anderledes end i dit
eget eksempel.


--
mvh, A:\Feldborg

Slægtsforskning og lokalhistorie i midt- vestjylland
http://hammerum-herred.dk/

Tom (10-03-2007)
Kommentar
Fra : Tom


Dato : 10-03-07 01:21

> Det vil jeg faktisk også mene du lige netop får med det forslag jeg
> sendte dig - Men bemærk brugen af [], den er lidt anderledes end i dit
> eget eksempel.

Hmm du bruger en $Type, men den har jeg ikke til rådighed



Martin Mouritzen (09-03-2007)
Kommentar
Fra : Martin Mouritzen


Dato : 09-03-07 23:18

On Fri, 09 Mar 2007 20:00:17 +0100, Arne Feldborg
<feldborg@haunstrup.dk> wrote:

>    $arr_blocks [$type][] = $hr;

Mener du ikke:
$arr_blocks[$hr["type"]][] = $hr;
--
Med venlig hilsen,
Martin Mouritzen.
http://www.siteloom.dk

Arne Feldborg (10-03-2007)
Kommentar
Fra : Arne Feldborg


Dato : 10-03-07 20:51

Martin Mouritzen <martin@siteloom.dk> skrev Fri, 09 Mar 2007 23:17:43
+0100

>On Fri, 09 Mar 2007 20:00:17 +0100, Arne Feldborg
><feldborg@haunstrup.dk> wrote:
>
>>    $arr_blocks [$type][] = $hr;
>
>Mener du ikke:
>$arr_blocks[$hr["type"]][] = $hr;
>
Det kommer jo an på, hvordan denne "type" fremkommer.

Men hvis det er et felt i databasen og det fremkommer i arrayet $hr på
formen $hr["type"] så vil jeg mene dit forslag løser problemet.

For overskuelighedens skyld kunne man jo evt. gøre sådan her:

$type = $hr["type"];
$arr_blocks[$type][] = $i;



--
mvh, A:\Feldborg

Slægtsforskning og lokalhistorie i midt- vestjylland
http://hammerum-herred.dk/

Michael Zedeler (09-03-2007)
Kommentar
Fra : Michael Zedeler


Dato : 09-03-07 17:54

Tom skrev:
> "Bertel Lund Hansen" <unospamo@lundhansen.dk> wrote in message
> news:gp5ph0ne7zee$.5cftoaql2cru$.dlg@40tude.net...
>> Tom skrev:
>>
>>> "Jeg ønsker et array der har de tre typer som index og som value et array
>>> bestående af arrays."
>> Du forklarer kun hvordan du vil have lavet den implementation du
>> selv har planlagt,
>
> Godt spottet
>
>> men hvem siger f.eks. at et array er den
>> bedste måde at løse det overordnede problem på?
>
> Det er ikke det der er spørgsmålet, men tak for hjælpen ellers.
>
> Mon ikke der er nogen der kan gennemskue problemstilligen?

Joda.

Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
I am less likely to answer usenet postings by anonymous authors.
Visit my home page at http://michael.zedeler.dk/

Martin Mouritzen (09-03-2007)
Kommentar
Fra : Martin Mouritzen


Dato : 09-03-07 20:44

On Thu, 8 Mar 2007 10:55:35 +0100, "Tom" <no@spam.please> wrote:

>Jeg har tre forskellige Types (Block, Page, Media)
>Jeg ønsker et array der har de tre typer som index og som value et array
>bestående af arrays.
>
>Jeg har forsøgt med array_merge mm. uden held.
>
>Koden er her:
>
> $data = mysql_query ($SQL, $this->Link) or die(mysql_error
>($this->Link));
> while ($hr = mysql_fetch_array ($data, MYSQL_ASSOC))
> {
> $arr_blocks [$hr ["Type"]] [] = $hr;
> }
>
>Ulempen her er at jeg har lagt den (redundante) dimension ind i arrayet men
>den skulle gerne væk fra hver enkelt indgang så jeg endte med et array med
>tre indgange i og i hver af disse indgange 0-n selvstændige arrays
>($hr'erne)

Altså, jeg har lidt svært ved at forstå hvad det gerne er du vil have
gjort anderledes. - Kan du formulere hvordan du gerne vil tilgå din
data f.eks.?

Derudover vil jeg lige tilslutte mig Bertel. Vil du ikke godt lade
være med at blive såret/irriteret når han foreslår dig at der måske er
en bedre løsning? Desuden er en tråd ikke din personlige ejendom, og
hvis folk vil afspore den, så gør de bare det (indenfor gruppens
område).
--
Med venlig hilsen,
Martin Mouritzen.
http://www.siteloom.dk

Michael Rasmussen (09-03-2007)
Kommentar
Fra : Michael Rasmussen


Dato : 09-03-07 21:07



Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408514
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste