创建要与http_build_query一起使用的数组

How do I rewrite this?

command=v&amount=<amount>&currency=<currency>&client_ip_addr=<ip>&description=<desc>&language=<language>&msg_type=SMS(&<property_name>=<property_value>)

into this?

$post_fields = array(
                     'command'        => 'v',
                     'amount'         => $amount,
                     'currency'       => $currency,
                     'client_ip_addr' => $client_ip_addr,
                     'description'    => $description,
                     'language'       => $language,
                     'msg_type'       => "SMS(&${property_name}={$property_value}"
                    );

I'm curious about last part of the parameters. SMS( is it an array or something? did I write correctly inside array?

...&msg_type=SMS(&<property_name>=<property_value>)

If this is a query string from a URL, then the parameter value SMS(&...) should have been encoded as SMS(%26...) to distinguish the ampersand as a character value from the ampersand used to separate different parameters. The parentheses should probably be similarly encoded as SMS%28%26...%29.

Other than that, the thing inside the SMS(...) parameter value is probably meant to be parsed by the receiver of the query, and has no special meaning to the URL itself.

Your array re-formulation appears to be correct, except that you are missing a closing paren in the msg_type value:

<?php

  $amount         = '$3.99';
  $currency       = 'USD';
  $client_ip_addr = '2001:db8::42';
  $description    = 'Flumbar';
  $language       = 'en';
  $property_name  = 'glimb';
  $property_value = 'snord';

  $post_fields = array(
    'command'        => 'v',
    'amount'         => $amount,
    'currency'       => $currency,
    'client_ip_addr' => $client_ip_addr,
    'description'    => $description,
    'language'       => $language,
    'msg_type'       => "SMS(&${property_name}={$property_value})"
  );

  $s = http_build_query ($post_fields);
  echo "$s
";

//  command=v&amount=%243.99&currency=USD&client_ip_addr=2001%3Adb8%3A%3A42&
//  description=Flumbar&language=en&msg_type=SMS%28%26glimb%3Dsnord%29