Search code examples
phparrays

PHP Associative Array Duplicate Keys


I have an associative array, however when I add values to it using the below function it seems to overwrite the same keys. Is there a way to have multiple of the same keys with different values? Or is there another form of array that has the same format?

I want to have:

42=>56
42=>86
42=>97
51=>64
51=>52
etc etc

Code:

   function array_push_associative(&$arr) {
       $args = func_get_args();
       foreach ($args as $arg) {
           if (is_array($arg)) {
               foreach ($arg as $key => $value) {
                   $arr[$key] = $value;
                   $ret++;
               }
           }else{
               $arr[$arg] = "";
           }
       }
       return $ret;
    }

Solution

  • No, you cannot have multiple of the same key in an associative array.

    You could, however, have unique keys each of whose corresponding values are arrays, and those arrays have multiple elements for each key.

    So instead of this...

    42=>56 42=>86 42=>97 51=>64 51=>52
    

    ...you have this:

    Array (
        42 => Array ( 56, 86, 97 )
        51 => Array ( 64, 52 )
    )