|
|
|
| Есть два массива с одинаковым количеством элементов в них
<?php
$one = Array('a','b','c','d', 'n');
$two = Array('x1','x2','x3','x4', 'xn');
|
Как сделать чтоб элементы первого массива образовали переменные и им было присвоено значение из второго массива..
типа такого
<?php
$a='x1';
$b='x2';
$c='x3';
.
.
.
$n='xn';
|
можно их конечно слить в один ассоциативный
$c = array_combine($one, $two);
|
Но что это даст и как дальше присвоить переменным их значения ..неясно
уже голову сломал... | |
|
|
|
|
|
|
|
для: S_7
(14.11.2015 в 12:46)
| | 1) для начала, откуда у вас эти массивы?
2) зачем нужны именно переменные? ( extract() )
3) почему значения из первого массива именно переменные, а не ключи новообразованного массива? ( array_combine() )
4) что вы собираетесь делать с этими переменными? | |
|
|
|
|
|
|
|
для: Valick
(14.11.2015 в 14:02)
| | extract() не интересен,также как и list() не подойдет т.к.там нужно точно указывать количество переменных которым присваивается значение...
есть вариант тупо инициализировать переменные
<?php
$c = array_combine($one, $two);
$a =!empty($c['a']) ? $c['$a'] : NULL;
$b =!empty($c['b']) ? $c['$b'] : NULL;
|
но думаю есть более красивое решение....мне эти переменные нужны чтоб они были предопределены... автоматически...вне зависимости от их к-ва..
---
3) почему значения из первого массива именно переменные, а не ключи новообразованного массива?
естественно это не критерий, что ключи и что значения..можно и так и так...но я решил что первый массив это ключи которые превратятся в переменные ..а второй массив их значения... | |
|
|
|
|
|
|
|
для: S_7
(14.11.2015 в 17:44)
| | Использование функций оказывается уже по интересам?
<?
extract(array_combine($one, $two));
|
| |
|
|
|
|
|
|
|
для: confirm
(15.11.2015 в 04:07)
| | если использовать extract( ), то при отсутствии значения какой либо переменной ( т.е. в ассоциативном массиве полученном функцией array_combine( ) ключу не будет соответствующее значение ) получим нотайс неинициализированной переменной.
Notice: Undefined variable: c in ....
|
| |
|
|
|
|
|
|
|
для: S_7
(16.11.2015 в 08:33)
| | S_7, я вам так скажу. Если у вас возникла такая ситуация, то с логикой скрипта у вас полная жопа :) | |
|
|
|
|
|
|
|
для: S_7
(16.11.2015 в 08:33)
| |
<?
$a = ['k1', 'k2'];
$b = [11, null];
extract(array_combine($a, $b));
echo $k2;
$a = ['k1', 'k2'];
$b = [11];
array_combine($a, $b); //что получим?
|
Думаем, прежде чем объединять два массива. | |
|
|
|