2016-04-08 18 views
0

Ich habe mehrere Dinge versucht und für das Leben von mir kann das nicht funktionieren. Ich fange an zu denken, dass es zu diesem Zeitpunkt vielleicht nicht möglich ist.PHP Multidimensional Array mit mehreren Array mit gleichen Schlüsseln?

So habe ich eine SOAP API Ich sende dieses Array auch. Unten ist der Code, den ich derzeit habe, der funktioniert, aber sendet die mehreren Werte nicht. Es verwendet nur das letzte, da es das vorherige überschreibt.

Mit Blick auf this thread, was ich tun soll, sollte funktionieren?

$my_array['sn'] = "234234232"; 
$my_array['arrayparams'] = array(
'Param' => array('Name' =>  'sending_key', 'Value' => 'blah',), 
'Param' => array('Name' => 'sending_key2', 'Value' => '2',), 
); 
$my_array['push'] = true; 
$my_array['endsession'] = false; 

kehrt:

array(4) { 
    ["sn"]=> 
    string(12) "234234232" 
    ["arrayparams"]=> 
    array(1) { 
    ["Param"]=> 
    array(2) { 
     ["Name"]=> 
     string(61) "sending_key2" 
     ["Value"]=> 
     string(1) "2" 
    } 
    } 
    ["push"]=> 
    bool(true) 
    ["endsession"]=> 
    bool(false) 
} 

Ich habe nur eine Zeit bekommen es diese Stelle zu senden:

array(4) { 
    ["sn"]=> 
    string(12) "234234232" 
    ["arrayparams"]=> 
    array(2) { 
    ["Param"]=> 
    array(2) { 
     ["Name"]=> 
     string(61) "sending_key" 
     ["Value"]=> 
     string(1) "blah" 
    } 
    ["Param"]=> 
    array(2) { 
     ["Name"]=> 
     string(61) "sending_key2" 
     ["Value"]=> 
     string(1) "2" 
    } 
    } 
    ["push"]=> 
    bool(true) 
    ["endsession"]=> 
    bool(false) 
} 

Das Array 'Param' sehr streng ist und diese haben muss Ich kann nicht zu 'Param2' wechseln, um es zum Laufen zu bringen. Danke im Voraus!

+2

Mögliches Duplikat [PHP assoziativer Array duplizieren Key?] (Http://stackoverflow.com/questions/2879132/php-associative-array-duplicate-key) –

+0

Es ist nicht möglich, doppelten Schlüssel in einem haben assoziative Array, macht es keinen Sinn. – Barmar

+0

Ja, aber die API verlangt, dass sie auf diese Weise gesendet wird, was mich umgehauen hat. – user1628514

Antwort

0

Das Problem ist, dass Sie den Schlüssel 'Param' nicht in mehr als einer Taste setzen können.

Sie müssten "Param" als ein tatsächliches Array definieren, anstatt mehrere Schlüssel innerhalb des Arrays.

wie so ...

$my_array['Param'] = [ 
    ['Name' => 'sending_key', 'Value' => 'blah'], 
    ['Name' => 'sending_key2', 'Value' => '2'] 
]; 
+0

Ups für diese eine, perfekte Lösung! Danke Mike! – user1628514

+0

Bitte akzeptieren Sie als Lösung, wenn dies für Sie funktioniert. Vielen Dank! –

0

können Sie das tun?

$my_array['arrayparams'] = array(
    array('Param' => array('Name' =>  'sending_key', 'Value' => 'blah',)), 
    array('Param' => array('Name' => 'sending_key2', 'Value' => '2',)), 
); 
+0

Aber natürlich ist es die richtige Antwort, denn user1628515 schrieb "perfekte Lösung" auf die Antwort von Mike, der im Grunde die gleiche Antwort gesendet hat – Gerfried

Verwandte Themen