PHP-назначение нескольких переменных для массива "ключ => значение" - PullRequest
0 голосов
/ 25 февраля 2012

Ключевое слово PHP list отлично подходит для извлечения переменных из массива $ a, как показано ниже

    $a = array(1,22);
    list($b, $c) = $a;
    var_dump("$a $b $c");

Но для массива $ a2 в виде key => value, как показано ниже, я не смог использовать list

    $a2 = array('b'=>1,'c'=>22);
    list($b, $c) = $a2;
    list($bkey, $b, $ckey, $c) = $a2;
    list( list($bkey, $b), list($ckey,$c) ) = $a2;

    var_dump("$a2 $b $c");

Все три вышеперечисленных задания терпят неудачу. Я сдаюсь.

Если вы знаете, как получить ключ и значение в массиве $ a2, помогите!

Ответы [ 3 ]

1 голос
/ 25 февраля 2012

Я думаю, вам следует использовать каждую функцию.

each () Возвращать текущую пару ключ-значение из массива и перемещать курсор массива.

1 голос
/ 25 февраля 2012

Следуя комментарию г-на Зла ниже (полковник Шрапнель, см. Его профиль), я никогда не говорил, что следующие два способа различны, можно использовать любой из них, но я посоветовал использовать эти методы для данных, вводимых пользователем, может создать проблемы безопасности на свой страх и риск или если нет введенных пользователем данных.


Похоже, он не работает с ассоциативными массивами, но вы можете сделать что-то вроде этого:

foreach ($array as $key => $value) {
     $$key = $value;
}

Пример:

$a2 = array('b'=>1,'c'=>22);
foreach ($a2 as $key => $value) {
     $$key = $value;
}

echo $b . '<br>';
echo $c;

Результат:

1
22

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

0 голосов
/ 25 февраля 2012

кажется, это extract() функция, которая вам нужна

...