Я хочу объединить их в один, где значения равны 1.
Пример:
У меня есть 3 массива:
$array1 = [1,0,0,1,0];
$array2 = [0,0,0,1,0];
$array3 = [0,1,0,0,0];
Существует "n" количество массивов.
Поэтому желаемый вывод будет:
$array = [1,1,0,1,0]
Более детально:
Это моя основная идея слияния пользовательских разрешений. Каждый массив представляет группу, частью которой является пользователь, и каждый ключ в массиве является разрешением. Каждое значение массива представляет true/false, если пользователь имеет разрешение.
Спасибо за ваш код/предложения/идеи.
Это должно сработать для вас:
<?php
$array1 = [1,0,0,1,0];
$array2 = [0,0,0,1,0];
$array3 = [0,1,0,0,0];
$result = array();
$n = 3; $tmp = 0;
$result = array();
for($count = 0; $count < count($array1); $count++) {
for($i = 1; $i <= $n; $i++)
$tmp = ${"array" . $i}[$count] || $tmp;
$result[] = $tmp;
}
var_dump($result);
?>
Вывод:
array(5) { [0]=> bool(true) [1]=> bool(true) [2]=> bool(false) [3]=> bool(true) [4]=> bool(false) }
foreach
. Серьезно - это 2 строки кода (фактически 3, если вы посчитаете инициализацию массива результатов)[1,0,0,1,0]
. Целые числа и логические значения - это 2 разных типа.