Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Из двух массивов получить переменные и присвоить им значения
 
 автор: S_7   (14.11.2015 в 12:46)   письмо автору
 
 

Есть два массива с одинаковым количеством элементов в них
<?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);

Но что это даст и как дальше присвоить переменным их значения ..неясно

уже голову сломал...

  Ответить  
 
 автор: Valick   (14.11.2015 в 14:02)   письмо автору
 
   для: S_7   (14.11.2015 в 12:46)
 

1) для начала, откуда у вас эти массивы?
2) зачем нужны именно переменные? ( extract() )
3) почему значения из первого массива именно переменные, а не ключи новообразованного массива? ( array_combine() )
4) что вы собираетесь делать с этими переменными?

  Ответить  
 
 автор: S_7   (14.11.2015 в 17:44)   письмо автору
 
   для: 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) почему значения из первого массива именно переменные, а не ключи новообразованного массива?
естественно это не критерий, что ключи и что значения..можно и так и так...но я решил что первый массив это ключи которые превратятся в переменные ..а второй массив их значения...

  Ответить  
 
 автор: confirm   (15.11.2015 в 04:07)   письмо автору
 
   для: S_7   (14.11.2015 в 17:44)
 

Использование функций оказывается уже по интересам?

<?
extract
(array_combine($one$two));

  Ответить  
 
 автор: S_7   (16.11.2015 в 08:33)   письмо автору
 
   для: confirm   (15.11.2015 в 04:07)
 

если использовать extract( ), то при отсутствии значения какой либо переменной ( т.е. в ассоциативном массиве полученном функцией array_combine( ) ключу не будет соответствующее значение ) получим нотайс неинициализированной переменной.

Notice: Undefined variable: c in ....

  Ответить  
 
 автор: Valick   (16.11.2015 в 10:00)   письмо автору
 
   для: S_7   (16.11.2015 в 08:33)
 

S_7, я вам так скажу. Если у вас возникла такая ситуация, то с логикой скрипта у вас полная жопа :)

  Ответить  
 
 автор: confirm   (16.11.2015 в 13:43)   письмо автору
 
   для: S_7   (16.11.2015 в 08:33)
 

<?
$a 
= ['k1''k2'];
$b = [11null];

extract(array_combine($a$b));

echo 
$k2;

$a = ['k1''k2'];
$b = [11];

array_combine($a$b); //что получим?


Думаем, прежде чем объединять два массива.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования