[PHP] Array probleempje

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • 4Real
  • Registratie: Juni 2001
  • Laatst online: 14-09-2024
Ik heb dus een array:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    [canview] => 1
    [4] => 1
    [cansearch] => 1
    [5] => 1
    [canpostnew] => 1
    [6] => 1
    [cantopicadmin] => 1
    [7] => 1
    [canreplyown] => 1
    [8] => 1
    [canreplyothers] => 1
    [9] => 1
    [canviewothers] => 1
    [10] => 1
    [caneditpost] => 1
    [11] => 1
    [canpostattachment] => 1
    [12] => 1
    [cangetattachment] => 1
    [13] => 1
    [canpostpoll] => 1
    [14] => 1
    [canvote] => 1


en ik wil de output als volgt hebben
PHP:
1
2
3
4
5
    [0] => Array
        (
            [name] => CANVIEW
            [checked] => checked
        )


om checked te krijgen gebruik ik dit:
PHP:
1
2
3
4
for ($i = 3; $i < 15; $i++)
{
    $row[$i] = ( $row[$i] == 1 ) ? "checked" : "";
}


maar dan komt de truck hoe krijg ik het voor de rest in een mooie array (ik heb array_keys() geprobeert maar daar kwam ik niet uit.)

ik stop het nu in een array als volgt
PHP:
1
$data_array = array('0' => array('name' => CANVIEW, 'checked' => $row[3]),


het werkt wel maar ik wil het in een loopje hebben voor als ik later nog keer de tabel verander.

Is dit mogelijk :?

[ Voor 11% gewijzigd door 4Real op 30-07-2003 17:18 ]


Acties:
  • 0 Henk 'm!

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 09-09 15:24
PHP:
1
2
3
4
5
6
7
8
9
$data_array=array();
foreach($theArray as $key => $value){
    if ($value==1){
        $checked="checked";
    } else {
        $checked="";
    }
    $data_array[]=array('name' => $key, 'checked' => $checked);
}


Bedoel je zoiets :?

Ik snap alleen niet helemaal waarom je ze nog een keer in een extra array ($data_array) wilt zetten.

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
het lijkt me dat je je array verkeerd opbouwd
de 'checked' value zit nu namelijk op geen enkele manier bij de 'naam', afgezien van de volgorde.

en betere manier is:

code:
1
2
3
4
5
6
7
8
[b]array[/b]
    0 =>
        name    => canview
        checked => 1
    1 =>
        name    => cansearch
        checked => 1
    etc

of, wat nog handiger/korter is, is om die canview, cansearch, etc als keyname te gebruiken en die gewoon de de waarde 1 of 0 te geven (checked of niet check)

dus:

array("canview"=>"1", "cansearch"=>"1","ietsanders"=>"0");

Acties:
  • 0 Henk 'm!

  • 4Real
  • Registratie: Juni 2001
  • Laatst online: 14-09-2024
het gaat van de data_array meteen de template parser in (via loopje :P)

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
4Real schreef op 30 July 2003 @ 18:09:
het gaat van de data_array meteen de template parser in (via loopje :P)
wat wil je daar precies mee zeggen?

Acties:
  • 0 Henk 'm!

  • 4Real
  • Registratie: Juni 2001
  • Laatst online: 14-09-2024
beetle71 vroeg waarom ik het nog keer in een extra array zette

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
aha, dat was me niet duidelijk

maargoed, blijft staan dat je - imho - je array anders moet opbouwen
Pagina: 1