Передача значений в функцию.

PHProgress

Новичок
Добрый день.

Есть стандартная функция для работы с массивами.
array_intersect.

В нее передаются массивы
PHP:
array_intersect ($array1, $array2, $array3 и т.д.)
Возможно ли в нее передавать параметры в виде строки.
PHP:
array_intersect ("$array1, $array2, $array3")
и что бы это выполнялось также, как и в первом случае.

--
Спасибо.
 

HraKK

Мудак
Команда форума
Вот, что за вечная манечка. Когда приходит сапожник, на автофорум который хочет залить масло в машину и спрашивает:"Есть ключ 19 на 21 и я им не могу разобрать двигатель, можно ли как-то им разобрать?". Вместо того чтоб спросить - как залить масло в машину?
 

zerkms

TDD infected
Команда форума
HraKK
Он не поймёт твоей аналогии )))

PHProgress
На профессиональных форумах надо не показывать своё кривое и (что намного важнее) неработающее решение - на профессиональных форумах надо описывать задачу, которую ты пытаешься решать.
 

PHProgress

Новичок
array_intersect ("$array1, $array2, $array3").

Задача - передавать в функцию неопределенное кол-во массивов.
 

zerkms

TDD infected
Команда форума
array_intersect ("$array1, $array2, $array3").

Задача - передавать в функцию неопределенное кол-во массивов.
Эта задача решается с помощью call_user_func_array()

Теперь понимаешь разницу между описанием проблемы и демонстрацией непонятного качества кода?
 

PHProgress

Новичок
Что-то не пойму, как ее прикрутить?
К примеру есть 5-ть массивов.

$ar['машины']
$ar['игрушки']
$ar['поросята']
$ar['зайчики']
$ar['девушки']

И как это зафутболить в функцию?
Что бы был вид array_intersect ("$ar['машины'], $ar['игрушки'], $ar['поросята'], $ar['зайчики'], $ar['девушки']")?

С помощью функции call_user_func_array()?
 

PHProgress

Новичок
Изначально ВОПРОС:

Возможно ли в функцию передавать параметры в виде строки
PHP:
array_intersect ("$array1, $array2, $array3")
 

zerkms

TDD infected
Команда форума
Можно передать в виде строки, но оно не будет работать.
 

zerkms

TDD infected
Команда форума
Btw,

"Задача - передавать в функцию неопределенное кол-во массивов."

"Возможно ли в функцию передавать параметры в виде строки"

Эти два вопроса никак не связаны. Если тебе надо передать неопределённое число массивов - тогда я уже сказал, какую функцию использовать, и "в виде" строки тут не пришей кобыле хвост.
 

PHProgress

Новичок
Документацию смотрел. И функцию call_user_func тоже.
Еще раз объясню, что пытаюсь сделать.

Есть функцию по работе с массивами.
array_intersect ();

Мне необходимо в нее передать то кол-во массивов, которое у меня выработал скрипт в программном коде до ее вызова.
Это может быть и 1 массив. И 10 массивов. Заранее я не знаю то количество - которое у меня будет.
И поэтому не могу тупо написать
а , b.

Как в данную функцию можно передать неопределенное кол-во массивов?
 

PHProgress

Новичок
Все равно не подходит.
Вот пишу.

PHP:
function debug($var, $val) 
{
    echo "var = " . $var;
	echo "val = " . $val;
}


call_user_func_array('debug', array("host", "few"));
И снова кол-во зависит от написанной функции function debug(ПЕРВЫЙ $var, ВТОРОЙ$val)
 

zerkms

TDD infected
Команда форума
Повторяю в третий раз, использовать нужно функцию call_user_func_array(). По указанной мной дважды ссылке есть пример как раз того, что тебе нужно.
 

zerkms

TDD infected
Команда форума
Омг...

Если у тебя уже есть массив данных - тогда просто передавай его аргументом.
 

whirlwind

TDD infected, paranoid
zerkms терпимее, терпимее :)


PHProgress посмотри внимательно, сколько аргументов у функции call_user_func_array ? Это число не меняется? Нет. А размер второго аргумента, который массив, меняется? Да. Значит задача сводится к чему?
 

PHProgress

Новичок
Сразу бы сказали - что в нее (call_user_func_array) можно передать функцию.
А то написано в справке - пользовательская... :)

$intersect = call_user_func_array('array_intersect', 'Зайчики , машинки и все прочее');
Работает.
 
Сверху