Как передать переменное количество параметров в функцию в PHP - PullRequest
0 голосов
/ 23 марта 2011

У меня есть этот многомерный массив (называемый $ values):

Array
(
    [0] => Array
        (
            [0] => 5
            [1] => 2
            [2] => 5
            [3] => 6
        )

    [1] => Array
        (
            [0] => 3
            [1] => 4
            [2] => 5
            [3] => 6
        )

    [2] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 4
            [3] => 5
        )

    [3] => Array
        (
            [0] => 9
            [1] => 5
            [2] => 3
            [3] => 2
        )
)

Я хочу вычислить diff между каждым элементом (массивом) этого многомерного массива, используя array_diff функцию PHP.Первое, что я подумал, это разделить многомерный массив на отдельные массивы с помощью этого:

for($cnt = 0; $cnt < count($values); $cnt++){
        for($cntB = 0; $cntB < 4; $cntB++){
            ${'arr'.$cnt}[] = $values[$cnt][$cntB];
        }
    }

После этого у меня есть несколько массивов с именами $arr1, $arr2 и так далее.Поскольку размерность массива $values может варьироваться (и он будет изменяться), я не могу найти способ передать все сгенерированные одиночные массивы в функцию array_diff,

Есть мысли?

Заранее спасибо.

Ответы [ 3 ]

5 голосов
/ 23 марта 2011

Не уверен, что это то, что вы хотите, так как я не читал все это, но посмотрите:

call_user_func_array('array_diff', $values)

Может быть, это то, что вы хотите.

0 голосов
/ 23 марта 2011

вместо

${'arr'.$cnt}[] = ...

использование

$arr[$cnt][] = ...

Проблема решена. :)

Нет необходимости в переменных переменных, когда вы действительно ищете массив.

0 голосов
/ 23 марта 2011
function diff() {
    $args = func_get_args();

    // $args how has all the arrays you passed in.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...