如何在php中通过字符串对数组进行“引用”

时间:2017-09-28 07:13:43

标签: php arrays string reference

我有一个问题,我现在无法解决(以一种简单的方式):

$clients = array("A", "B");

$array_data_A = array(
    array("1000733", "1.6.0"),
    array("1000733", "1.8.0"),
    array("1000733", "1.8.1"),
    array("1000733", "1.8.2"),
    array("1000733", "1.8.3"),
    array("1000733", "1.8.4"),
);

$array_data_B = array(
    array("1000733", "1.6.0"),
    array("1000733", "1.8.0"),
    array("1000733", "1.8.1"),
    array("1000733", "1.8.2"),
    array("1000733", "1.8.3"),
    array("1000733", "1.8.4"),
);

现在我可以做到这一点:

foreach ($clients as $client) {

    // won't work
    $data_array = '$array_data'.$client;
    getsqldata($client, $data_array);

    // works
    switch ($client) {
        case "A":
            getsqldata($client, $array_data_A);
            break;
    }
}       

这是用case函数解决这个问题的唯一方法吗?或者是否有可能在变量中存储一个字符串,可以用作对正确数组的引用?

因为我有很多客户(50+)我正在寻找一种动态的方法来解决这个问题......

2 个答案:

答案 0 :(得分:2)

在字符串中,你遗漏了其中一些_

Try sample code here

将其更改为:

$data_array = '$array_data'.$client;

此:

$data_array = ${'array_data_' . $client};

答案 1 :(得分:1)

您可以使用以下代码实现此目的:

$str = "array_data_".$client;
$data_array = $$str;

Here is the documentation