У меня есть этот многомерный массив (называемый $ 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 ) )
Я хочу рассчитать разницу между каждым элементом (массивом) этого многомерного массива с array_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
,
Есть предположения?
Заранее спасибо.
Не уверен, что это то, что вы хотите, поскольку я не читал все это, но проверьте:
call_user_func_array('array_diff', $values)
Возможно, это то, что вы хотите.
function diff() { $args = func_get_args(); // $args how has all the arrays you passed in. }
Вместо
${'arr'.$cnt}[] = ...
использование
$arr[$cnt][] = ...
Задача решена. 🙂
Нет необходимости в переменных переменных, когда то, что вы действительно ищете, – это массив.