title: dynamo db $client->getItem() returning extra repeat attribute value after successful $client->updateItem()
body: <p>I have a DynamoDb Table with a sample item as follows which will be manipulated using a PHP script- AWS sdks for PHP.</p>
  
  <p><strong>f_handle &nbsp;&nbsp;&nbsp; sub_id &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; members_json<br>
  b_AZVK &nbsp;&nbsp;&nbsp; 1  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {"MEMBERS":[]}</strong></p>
  
  <p>Following are various states on subsequent runs of the script which attempts to add new member to the members_json attribute which is empty by default {"MEMBERS":[]}</p>
  
  <h2>1st RUN</h2>
  
  <pre><code>$response = $client-&gt;getItem ( array (
                      "TableName" =&gt; $table_flokk_coll,
                      "ConsistentRead" =&gt; true,
                      "Key"       =&gt; array(
                          "f_handle"   =&gt; array('S' =&gt; "b_AZVK"),
                          "sub_id" =&gt; array('S' =&gt; '1')
                      ),
                      "ProjectionExpression" =&gt; "members_json" 
                  ));
  
  print_r ( $response["Item"]);
  </code></pre>
  
  <pre>
  [Item] => Array
                  (
                      [members_json] => Array
                          (
                              [S] => {"MEMBERS":[]}
                          )
                  )</pre>
  
  <h3>Adding Member {"uid":"11","name":""}</h3>
  
  <pre><code> $members_json_str = "{"uid":"11","name":""}";
   $response = $client-&gt;updateItem ( array (
                          "TableName" =&gt; $table_flokk_coll,
                          "Key" =&gt; array (
                              "f_handle" =&gt; array (
                                  "S" =&gt; "b_AZVK" 
                              ),
                              "sub_id" =&gt; array (
                                  "S" =&gt; '1' 
                              ) 
                          ),
                          "UpdateExpression" =&gt; "set #ATTR1 = :VAL1",
                          "ExpressionAttributeNames" =&gt; array (
                              "#ATTR1" =&gt; "members_json"                                
                          ),
                          "ExpressionAttributeValues" =&gt;  array (
                              ":VAL1" =&gt; array("S" =&gt; stripslashes($members_json_str))                                
                          ),                            
                          "ReturnValues" =&gt; "ALL_NEW" 
                      ) );
  print_r ( $response["Attributes"]);
  </code></pre>
  
  <pre>
  [Attributes] => Array
                  (
                      [members_json] => Array
                          (
                              [S] => {"MEMBERS":[{"uid":"11","name":""}]}
                          )
  
                      [cluster_id] => Array
                          (
                              [S] => 1
                          )
  
                      [f_handle] => Array
                          (
                              [S] => b_AZVK
                          )
  
                      [sub_cluster] => Array
                          (
                              [S] => null
                          )
  
                      [sub_id] => Array
                          (
                              [S] => 1
                          )
  
                  )</pre>
  
  <h2>2nd RUN</h2>
  
  <pre><code>$response = $client-&gt;getItem ( array (
                      "TableName" =&gt; $table_flokk_coll,
                      "ConsistentRead" =&gt; true,
                      "Key"       =&gt; array(
                          "f_handle"   =&gt; array('S' =&gt; "b_AZVK"),
                          "sub_id" =&gt; array('S' =&gt; '1')
                      ),
                      "ProjectionExpression" =&gt; "members_json" 
                  ));
  
  print_r ( $response["Item"]);
  </code></pre>
  
  <pre>
  [Item] => Array
                  (
                      [members_json] => Array
                          (
                              [S] => {"MEMBERS":[{"uid":"11","name":""}]}
                          )
                  )</pre>
  
  <h3>Adding Member {"uid":"12","name":""}</h3>
  
  <pre><code> $members_json_str = "{"uid":"12","name":""}";
   $response = $client-&gt;updateItem ( array (
                          "TableName" =&gt; $table_flokk_coll,
                          "Key" =&gt; array (
                              "f_handle" =&gt; array (
                                  "S" =&gt; "b_AZVK" 
                              ),
                              "sub_id" =&gt; array (
                                  "S" =&gt; '1' 
                              ) 
                          ),
                          "UpdateExpression" =&gt; "set #ATTR1 = :VAL1",
                          "ExpressionAttributeNames" =&gt; array (
                              "#ATTR1" =&gt; "members_json"                                
                          ),
                          "ExpressionAttributeValues" =&gt;  array (
                              ":VAL1" =&gt; array("S" =&gt; stripslashes($members_json_str))                                
                          ),                            
                          "ReturnValues" =&gt; "ALL_NEW" 
                      ) );
  print_r ( $response["Attributes"]);
  </code></pre>
  
  <pre>
  [Attributes] => Array
                  (
                      [members_json] => Array
                          (
                              [S] => {"MEMBERS":[{"uid":"11","name":""},{"uid":"12","name":""}]}
                          )
  
                      [cluster_id] => Array
                          (
                              [S] => 1
                          )
  
                      [f_handle] => Array
                          (
                              [S] => b_AZVK
                          )
  
                      [sub_cluster] => Array
                          (
                              [S] => null
                          )
  
                      [sub_id] => Array
                          (
                              [S] => 1
                          )
  
                  )</pre>
  
  <h2>3rd RUN</h2>
  
  <pre><code>$response = $client-&gt;getItem ( array (
                      "TableName" =&gt; $table_flokk_coll,
                      "ConsistentRead" =&gt; true,
                      "Key"       =&gt; array(
                          "f_handle"   =&gt; array('S' =&gt; "b_AZVK"),
                          "sub_id" =&gt; array('S' =&gt; '1')
                      ),
                      "ProjectionExpression" =&gt; "members_json" 
                  ));
  
  print_r ( $response["Item"]);
  </code></pre>
  
  <pre>
  [Item] => Array
            (
           [members_json] => Array
           (
      [S] => {"MEMBERS":[{"uid":"11","name":""},{"uid":"12","name":""},{"uid":"12","name":""}]}
            )
        )
  </pre>
  
  <h1>THE PROBLEM is ABOVE</h1>
  
  <p>I have no clue how it is fetching the extra attribute value for <strong>{"uid":"12","name":""}</strong> which it clearly show was non-existent in the "members_json" after the 2nd run.</p>
  
  <h3>Adding Member {"uid":"13","name":""}</h3>
  
  <pre><code> $members_json_str = "{"uid":"13","name":""}";
   $response = $client-&gt;updateItem ( array (
                          "TableName" =&gt; $table_flokk_coll,
                          "Key" =&gt; array (
                              "f_handle" =&gt; array (
                                  "S" =&gt; "b_AZVK" 
                              ),
                              "sub_id" =&gt; array (
                                  "S" =&gt; '1' 
                              ) 
                          ),
                          "UpdateExpression" =&gt; "set #ATTR1 = :VAL1",
                          "ExpressionAttributeNames" =&gt; array (
                              "#ATTR1" =&gt; "members_json"                                
                          ),
                          "ExpressionAttributeValues" =&gt;  array (
                              ":VAL1" =&gt; array("S" =&gt; stripslashes($members_json_str))                                
                          ),                            
                          "ReturnValues" =&gt; "ALL_NEW" 
                      ) );
  print_r ( $response["Attributes"]);
  </code></pre>
  
  <pre>
  [Attributes] => Array
    (
    [members_json] => Array
              (
  [S] => {"MEMBERS":[{"uid":"11","name":""},{"uid":"12","name":""},{"uid":"12","name":""},{"uid":"13","name":""}]}
                          )
  
                      [cluster_id] => Array
                          (
                              [S] => 1
                          )
  
                      [f_handle] => Array
                          (
                              [S] => b_AZVK
                          )
  
                      [sub_cluster] => Array
                          (
                              [S] => null
                          )
  
                      [sub_id] => Array
                          (
                              [S] => 1
                          )
  
                  )</pre>