Как использовать один массив в двух функциях в PHP?

0

У меня есть массив со следующим содержимым:

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

Первый столбец должен быть $ uservalue и вторым значением $ test в функциях. Он работал, когда я использую один массив столбцов для первого цикла функции через массив в функции.

И я хотел бы использовать этот массив в следующих двух функциях. Первый столбец массива должен использоваться как $ 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);
}

Как я могу архивировать это? Я нашел эти две функции в вики программного обеспечения, которое я хотел бы реализовать... Поэтому я знаю, что использование глобальных переменных не является хорошим вариантом.

Теги:
arrays
function

2 ответа

1
Лучший ответ

Вы можете разделить свой массив на два массива, используя следующий код и передать соответствующий массив соответствующей функции.

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

Ниже приведена ссылка для деталей функций array_values и array_keys.

0

Передайте массив как параметр функции для обеих функций... или сделайте массив глобальным. Перейдите по ссылке, если вы хотите изменить исходный массив (ваши изменения массива, сделанные внутри функции, будут видны вне функции).

  • 0
    Работает ли это, когда необходимо, чтобы значения массива принадлежали друг другу? Таким образом, User1 всегда нужен Test1 в качестве значения, а User2 всегда Test2.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню