[PHP] Casten naar string bij array_merge

Pagina: 1
Acties:

Onderwerpen


  • DDemolition
  • Registratie: Augustus 2003
  • Laatst online: 01-11 01:07

DDemolition

slopen is mijn lust en leven

Topicstarter
Heb hier een simpele functie die een orginele array kan uitbreiden en waarbij je de key kan opgeven. Dit kan met array_merge niet, dus vandaar een eigen oplossing:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function AddToArray($aOrgArray, $sValue, $sKey = NULL)
        {
        if ($sKey <> NULL)
                {
                $_tmp = array($sKey => $sValue);//print_r geeft een geldige numerieke key
                }
        else
                {
                $_tmp = array($sValue);
                }

        $aOrgArray = array_merge($aOrgArray, $_tmp);
        //print_r($aOrgArray);//print_r geeft 0 als key
        unset($_tmp);
        return $aOrgArray;
        }


Probleem is; na het gebruik van array_merge worden de keys die niet behandeld zijn als string gewoonweg op 0 gezet.
PHP:
1
2
3
$array = AddToArray($array, "waarde1", 1); //gaat fout
$array = AddToArray($array, "waarde2", "abc"); //gaat goed
$array = AddToArray($array, "waarde2", "def"); //gaat goed


Heb al wat lopen casten met (string)$val en strval().
Zelf een vieze oplossing zoals
$sKey = " ".$sKey;
$sKey = trim($sKey);

werkt niet, omdat array_merge 'm om zeep helpt.

wie-o-wie?

Specs: Server, WS boven, WS beneden


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

If you want to completely preserve the arrays and just want to append them to each other (not overwriting the previous keys), use the + operator:
PHP:
1
2
3
4
5
<?php
$array1 = array();
$array2 = array(1 => "data");
$result = $array1 + $array2;
?>


Ge zijt het wiel opnieuw aan het uitvinden ;)

[ Voor 10% gewijzigd door Snake op 18-03-2008 21:28 ]

Going for adventure, lots of sun and a convertible! | GMT-8


  • DDemolition
  • Registratie: Augustus 2003
  • Laatst online: 01-11 01:07

DDemolition

slopen is mijn lust en leven

Topicstarter
Nooit geweten dat dat kon :)
En ik maar denken dat m'n functie zo mooi was :)

Specs: Server, WS boven, WS beneden


  • neothor
  • Registratie: Oktober 2004
  • Laatst online: 02-10-2023
Het kan aan mij liggen maar volgens mij doe je vrij moeilijk om items aan een array toe te voegen.
Je kan namelijk gewoon het volgende gebruiken.

PHP:
1
$array["sleutel"] = "waarde";


Dus mischien zie ik over het hoofd maar ik vind het vrij omslachtig.

Last.fm | LinkedIn | Twitter