Как передать много параметров в функцию, если они элементы массива?

141
17 апреля 2018, 02:55

Например, функция array_diff() принимает сколько угодно аргументов.

Как мне быть, если каждый аргумент-массив - это элемент массива? $myArray = ...;

Т.е.

array_diff($myArray[0], $myArray[1], $myArray[2], ... $myArray[N - 1]);

Каким образом мне передать все элементы массива в эту функцию?

Answer 1

Можно использовать func_get_args()

function foo() {
    return func_get_args();
}
var_dump( foo([1], [2], [3]) );

Результат:

array (size=3)
  0 => 
    array (size=1)
      0 => int 1
  1 => 
    array (size=1)
      0 => int 2
  2 => 
    array (size=1)
      0 => int 3
Answer 2

Начиная с версии PHP 5.6 вы можете делать так:

<?php
$myArray = [
    [1, 2, 3, 4, 5, 6, 7, 8],
    [1],
    [2],
    [3],
    [4],
    [5],
    [6],
    [7],
];
var_dump(array_diff(...$myArray));

Тест вернет

array(1) {
  [7]=>
  int(8)
}
READ ALSO
yii2 как передать параметр моделе

yii2 как передать параметр моделе

Всем приветВозникла проблема

157
Система координа php [требует правки]

Система координа php [требует правки]

как видбиаты точки на системе координат средствами php

169
Работа с файлами в symfony2

Работа с файлами в symfony2

Всем привет! Я столкнулся с такой задачей: есть массив с n вложенностьюНужно этот массив записать в csv файл, чтобы была структура типа:

192