[PHP] Casten naar string bij array_merge

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • DDemolition
  • Registratie: Augustus 2003
  • Laatst online: 30-09-2024

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


Acties:
  • 0 Henk 'm!

  • 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


Acties:
  • 0 Henk 'm!

  • DDemolition
  • Registratie: Augustus 2003
  • Laatst online: 30-09-2024

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


Acties:
  • 0 Henk 'm!

  • 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