#php #arrays #for-loop
#php #массивы #for-цикл
Вопрос:
Во-первых, у меня есть эти значения.
$Arr1 = array(1/1, 1/2, 3/1);
$Arr2 = array(1/1, 4/1);
$Arr3 = array(1/1);
и мне нужен вывод с 3 массивами, подобными этим:
$a1 = array (1/1, 1/2, 3/1);
$a2 = array (2/1, 1/1, 4/1);
$a3 = array (1/3, 1/4, 1,1);
То, что я пытаюсь, это :
for ($i=0; $i<count($Arr1); $i ) {
${"a".$i} = array(
//here, the number of array elements depends to the length of $a1
);
}
Любая помощь? Спасибо
Я думаю, что это изображение помогает понять проблему:
Комментарии:
1. какую функцию / преобразование вы используете для получения выходных массивов? как $a сопоставляется с $ a1?
2. @bryan у меня пока нет никаких выходных данных. Предполагается, что цикл, который я не могу создать, в этом случае производит 4 массива.
3. Я понимаю это, но я спрашиваю, как вы вычисляете значения новых массивов? Нравится… что такое формула? Например, «Умножьте каждый элемент в $ a на 3 и добавьте 6» или что-то в этом роде. Вы понимаете мой вопрос? Учитывая $ a, как вы создаете $ a1?
4. Вычислений нет. Например, $ Arr4 соответствует $ a4.
5. Хорошо, это ясно, но как появляются эти отрицательные значения, я думаю, это то, о чем спрашивает Брайан?
Ответ №1:
Во-первых, использование 2D-массива сделает вашу жизнь намного проще.
Итак, сначала инициализируйте свои значения следующим образом:
$matrix_size = 3;
$matrix = array();
for($i = 0; $i < $matrix_size; $i ){
$matrix[$i] = array_fill(0, $matrix_size, null);
}
$matrix[0][0] = 1/1;
$matrix[0][1] = 1/2;
$matrix[0][2] = 3/1;
$matrix[1][1] = 1/1;
$matrix[1][2] = 4/1;
$matrix[2][2] = 1/1;
Затем вы можете запустить цикл, подобный этому:
foreach($x = 0; $x < $matrix_size; $x ){
foreach($y = 0; $y < $matrix_size; $y ){
if(is_null($matrix[y][x]) amp;amp; !is_null($matrix[x][y])){
$matrix[y][x] = 1/$matrix[x][y];
}
}
}
Я уверен, что есть гораздо более эффективный способ сделать это, но это только начало для вас, чтобы изучить.
Комментарии:
1. извините за редактирование в моем вопросе, но я думаю, что теперь это более понятно для всех.