PHP使用数组(?)来连接参数字符串?

时间:2014-04-26 09:59:17

标签: php string concatenation

很抱歉没有使用正确的术语,但鉴于我的PHP级别基本如何,也许你不会这么想。

我正在使用的插件的函数允许参数以选择性地回显内容:

<?php phpquote(argumentstring); ?>

参数字符串的一个例子是例如的自动刷新= 0&安培;标记= A,B,C

我一直认为可以使用数组来构建一个&#39;字符串&#39;例如

之类的东西
<?php $arg=array( 'auto_refresh' => '0', 'tags' => 'a,b,c' );
phpquote($arg); ?>

因此我想我可以从其他领域引入其他内容,例如

<?php 
$fieldcontent = get_field("field_content");
$arg=array( 'auto_refresh' => '0', 'tags' => $fieldcontent );
phpquote($arg); ?>

然而,这似乎不起作用,所以我的两个问题是:

  1. 是否可以使用数组构建这样的参数字符串?或者这取决于插件?
  2. 如果是这样,是否可以从其他地方引入内容作为上述示例?
  3. 提前致谢。我很欣赏这可能看起来像一个非常基本的问题,术语不正确(抱歉!)所以希望对专家有意义。

4 个答案:

答案 0 :(得分:2)

循环遍历数组并使用implode()功能将各个部分粘合在一起。 manual

或者你也可以这样做:

$argumentString= "";
foreach($arg as $k=>$v){
    $argumentString.= $k.'='.$v.'&';
}
$argumentString = substr($argumentString,0,-1); //removes the last &

答案 1 :(得分:2)

您可以使用implode()array_map() PHP函数将数组转换为参数字符串:

<?php

    $args = array( 'auto_refresh' => '0', 'tags' => 'a,b,c' );

    function rb_map( $a, $b ) {
        return $a . '=' . $b;
    }

    $arg_string = implode('&', array_map( 'rb_map', array_keys($args), $args ) );
    //var_dump($arg_string);
?>

答案 2 :(得分:2)

<?php
$arg=array( 'auto_refresh' => '0', 'tags' => 'a,b,c' );
echo urldecode(http_build_query($arg)); //output: auto_refresh=0&tags=a,b,c
?>

这是你想要的吗?

检查http_build_query以获取更多信息

答案 3 :(得分:1)

是否可以使用数组作为函数的参数取决于函数本身的定义/使用方式。

以此为例:

function test($var) {
    print_r($var);
}

$bla = array(1 => "test me", 2 => "balbla");

test($bla);

(您可以使用 here

您可以传递字符串或数组作为test函数的参数,因为print_r能够处理这两者。例如,如果函数有echo,并且您将数组作为参数传递给函数,则它将失败。