【问题标题】:php string formatting?php字符串格式化?
【发布时间】:2009-02-24 15:14:53
【问题描述】:

这里是代码

    $i=0;
while ($row = mysql_fetch_array($result)) 
    {
    $output.="idno".$i."=".urlencode($row['usr_id']).
    '&'."res".$i."=".urlencode($row['responce']).
    '&'."sex".$i."=".urlencode($row['sex']).
    '&'."com1".$i."=".urlencode($row['com1']).
    '&'."com2".$i."=".urlencode($row['com2']);
     $i++;

    }

我得到 idno 的输出是 com2 字符串的一部分,我如何将它们分开。

【问题讨论】:

    标签: php string formatting


    【解决方案1】:

    $i 不为零时,您需要添加&

       $i=0;
    while ($row = mysql_fetch_array($result)) 
            {
        $output .= ($i ? '&' : '') . "idno".$i."=".urlencode($row['usr_id']).
            '&'."res".$i."=".urlencode($row['responce']).
            '&'."sex".$i."=".urlencode($row['sex']).
            '&'."com1".$i."=".urlencode($row['com1']).
            '&'."com2".$i."=".urlencode($row['com2']);
         $i++;
    
            }
    

    【讨论】:

    • 啊啊,他就是这个意思。 +1
    • 是的,我不得不把这个问题读了几遍才能弄明白,呵呵
    【解决方案2】:

    另一种解决方案是使用数组并在之后加入其元素:

    $array = array();
    $i = 0;
    while ($row = mysql_fetch_array($result)) {
        $array[] = "idno$i=".urlencode($row['usr_id']);
        $array[] = "res$i=".urlencode($row['responce']);
        $array[] = "sex$i=".urlencode($row['sex']);
        $array[] = "com1$i=".urlencode($row['com1']);
        $array[] = "com2$i=".urlencode($row['com2']);
        $i++;
    }
    $output .= implode('&', $array);
    

    此外,您还可以使用 argName[] 声明,PHP 将在接收到此类请求查询字符串时转换为数组。

    【讨论】:

      【解决方案3】:

      或者你可以这样做:

      $array = array();
      $i = 0;
      while ($row = mysql_fetch_array($result)) {
          $array["idno$i"] = $row['usr_id'];
          $array["res$i"] = $row['responce'];
          //etc.
      
          $i++;
      }
      
      $output = http_build_query($array);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-29
        • 2016-02-24
        • 2018-05-20
        • 1970-01-01
        • 2010-10-22
        • 1970-01-01
        相关资源
        最近更新 更多