我怎么能在PHP中拆分价值?

时间:2016-03-02 08:18:07

标签: php arrays split

我在PHP文件中有这样的值:

{First=itema,Fourth=10000.0,Second=10,Third=1000},{First=itemb,Fourth=12000.0,Second=12,Third=1000}

如何分割这些值,直到我得到这样的值:

{itema,10000,10,100} AND {itemb,12000,12,1000}

我在Android应用程序中从方法POST获得了这个值,我得到了这样的PHP文件:

<?php


$str = str_replace(array('[',']'), '', $_POST['value1']);
$str = preg_replace('/\s+/', '', $str);

echo $str;

?>

而且,这是我在Android应用程序中的代码:

try {

            httpclient = new DefaultHttpClient();
            httppost = new HttpPost("http://192.168.107.87/final-sis/order.php");

            nameValuePairs = new ArrayList<NameValuePair>(2);

            nameValuePairs.add(new BasicNameValuePair("value1", list.toString()));

            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            response=httpclient.execute(httppost);
            Log.d("Value Price: ", httppost.toString());
            HttpEntity entity=response.getEntity();
            feedback = EntityUtils.toString(entity).trim();
            Log.d("FeedBack", feedback);

        }catch (Exception e){

        }

这是完全关于我的代码的链接:

How can I store my ArrayList values to MySQL databases?

我以前一直在问,但我找不到最好的方法。

谢谢。

1 个答案:

答案 0 :(得分:0)

这将产生所需的字符串。我首先使用一些正则表达式来分割初始字符串,然后抓取每个值。

$s = '{First=itema,Fourth=10000.0,Second=10,Third=1000},{First=itemb,Fourth=12000.0,Second=12,Third=1000}';

preg_match_all('/\{[^}]*}/', $s, $m);

此时$ m包含:

array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(49) "{First=itema,Fourth=10000.0,Second=10,Third=1000}"
    [1]=>
    string(49) "{First=itemb,Fourth=12000.0,Second=12,Third=1000}"
  }
}

然后我们循环每个部分。下一个正则表达式:

'/\=([^\,]+)/'

这样说,抓住等号和逗号之间的所有文本并将其放入捕获组。

然后我们就会破坏比赛。

$parts = array();
foreach($m[0] as $match) {
   $t = trim($match, '{}');
   preg_match_all('/\=([^\,]+)/', $t, $m2);
   $parts[] = '{'.implode($m2[1], ',').'}';
}

$finalString = implode($parts, ' AND ');
var_dump($finalString);