有没有办法快速定义一个变量名称为PHP的索引的数组?

时间:2014-03-03 00:44:49

标签: php arrays

假设我有以下变量:

$var1, $var2, $longrandomstringtomakemypoint

我想将它们插入到这样的数组中:

$array_of_things = array('var1' => $var1, 'var2' => $var2, 'longrandomstringtomakemypoint' => $longrandomstringtomakemypoint);

键入此内容会使我的代码感到混乱,因为我不得不两次输入相同的内容。

是否有定义数组的快捷方式,变量名称为索引?

3 个答案:

答案 0 :(得分:6)

$my_array = compact('var1', 'var2', 'anothervar');

http://www.php.net/compact

答案 1 :(得分:0)

<?php

    // LETS SAY YOU HAVE YOUR VARS WITH THE FOLLOWING ASSIGNED VALUES
    $var1 == "value1";
    $var2 == "value2";
    $longrandomstringtomakemypoint = "value3";

    $result = compact('var1', 'var2', 'longrandomstringtomakemypoint' );

    print_r($result);

    ?>

输出将是:

Array
(
    [var1] => value1
    [var2] => value2
    [longrandomstringtomakemypoint] => value3
)

[http://us1.php.net/compact] [1]

答案 2 :(得分:0)

我的理解是你要避免两次输入变量名和值。
如果是这种情况,你可以像这样实现它,但这与你想要它的方式相反。
尽管我很怀疑,但无论如何我已经说过了:

/*
 *  Put the variables and values into an array
 */

$arrayOfVariables =
    array(
         'var1' => 'var1Value'
        ,'var2' => 'value2Value'
        ,'longrandomstringtomakemypoint' => 'longrandomstringtomakemypointValue'
    );

/*
 *  Iterate and create variable and assign values
 */

foreach( $arrayOfVariables as $variableName => $variableValue )
{
    /*
     *  Variable variables
     */
    ${$variableName} = $variableValue;
}

/*
 *  Now you can use all those as variables
 */

echo $var1 ,' ' ,$var2 ,' ' ,$longrandomstringtomakemypoint;

@TonyArra提到了可以取代上述foreach的提取函数。