如何在PHP中的两个函数中使用一个数组?

时间:2015-02-22 17:44:08

标签: php arrays function

我有一个包含以下内容的数组:

 $array_test = array ("User1"=>"Test1",
                      "User2"=>"Test2");

第一列应为$ uservalue和函数中的第二个$ testvalue。当我使用单个列数组通过函数中的数组的第一个函数循环时,它工作正常。

我想在以下两个函数中使用这个数组。 数组的第一列应该用作$ uservalue。

function do_show(array $options) {
    global $showresult, $master;
    $cn = $uservalue;
    $config = $options["config"]->value;
    // an empty show tag
    $show = new SimpleXMLElement("<show/>");
    // add the user tag
    $user = $show->addChild("user");
    // add the "cn" attribute
    $user->addAttribute("cn", $cn);
    if ($config)
        $user->addAttribute("config", "true");

    print "cmd: " . htmlspecialchars($show->asXML()) . "\n";

    // do it
    $showresult = $masterPBX->Admin($show->asXML());
    print "result: " . htmlspecialchars($showresult) . "\n";
    }

第二个函数,我想使用数组的第二列作为$ testvalue的值:

function do_modify(array $options) {
    global $showresult, $master;
    $mod = $testvalue;
    $modify = new SimpleXMLElement("$showresult");
    $user = $modify->user;
    $path = explode("/device/hw/", $mod);
    $srch = $user;
    $nsegments = count($path);
    $i = 1;
    foreach ($path as $p) {
        if ($i == $nsegments) {
            // last part, the modification
            list($attr, $value) = explode("=", $p);
            $srch[$attr] = $value;
        } else {
            $srch = $srch->$p;
        }
        $i++;
    }

    // wrap the modified user tag in to a <modify> tag
    $modify = new SimpleXMLElement("<modify>" . $user->asXML() . "</modify>");
    print "cmd: " . htmlspecialchars($cmd = $modify->asXML()) . "\n";
    $result = $master->Admin($cmd);
    print "result: " . htmlspecialchars($result);
}

我怎样才能达到这个目的?我在软件的wiki中找到了这两个函数,我想实现这个...所以我知道使用全局变量不是一个好的选择。

2 个答案:

答案 0 :(得分:1)

您可以使用以下代码将数组拆分为两个数组,并将相应的数组传递给相关函数。

$array_test = array ("User1"=>"Test1",
                      "User2"=>"Test2");
$array_users = array_keys($array_test);
$array_tests = array_values($array_test);

以下是有关array_valuesarray_keys函数的详细信息的链接。

答案 1 :(得分:0)

将数组作为函数参数传递给两个函数...或使数组全局化。如果要更改原始数组,则通过引用传递(在函数内部进行的数组更改在函数外部可见)。