2017-02-22 41 views
1

Я знаю, что есть разные вопросы по этой теме, но большинство из них связано с ассоциативными массивами и т. Д. Мне нужно добавить 2 массива/матрицы вместе и получить результирующее значение.Добавление 2 отдельных многомерных массивов PHP

т.е.

<?php 

$matrixa = array(
    array($a1,$b1), 
    array($c1, $d1) 
); 
$matrixb = array(
    array($a2,$b2), 
    array($c2, $d2) 
); 

for ($i=0; $i<2; $i++){ 
    for ($j=0; $j<2; $j++){ 
     $matresult[$i][$j] = $matrixa[$i][$j] + $matrixb[$i][$j];        
    }        
} 

//which essentially produces: 
// $matrixc = array(
//  array($matrixa[0][0]+$matrixb[0][0], $matrixa[0][1]+ $matrixb[0][1]), 
//  array($matrixa[1][0]+$matrixb[1][0], $matrixa[1][1]+ $matrixb[1][1]) 
// ); 

?> 

Матрица C будет использоваться для какой-то пользовательского ввода verificiation но мой вопрос, как я могу напечатать матрицы А и matrixB так, что они появляются в следующем формате в строке HTML код:

[x, y] or x y 
[x, y] x y 

Что-то вроде:

<p>What is <?php echo $matrixa; ?> + <?php echo $matrixb; ?> ?</p> 

В этом заявлении в настоящее время выводится «Что такое ARRAY + ARRAY?»

@RomanPerekhrest EDIT - Я используя MathJax в моем коде, так мне было интересно, если есть способ, который был менее многословным, чем:

<p>What is `[[ 
    <?php echo $matrixa[0][0]; ?> &nbsp;&nbsp; <?php echo $matrixa [0][1];?>               
    ],[ 
    <?php echo $matrixa[1][0]; ?> &nbsp;&nbsp; <?php echo $matrixa [1][1];?> 
    ]]` + `[[ 
    <?php echo $matrixb[0][0]; ?> &nbsp;&nbsp; <?php echo $matrixb [0][1];?>               
    ],[ 
    <?php echo $matrixb[1][0]; ?> &nbsp;&nbsp; <?php echo $matrixb [1][1];?> 
    ]]` ? 
</p> 
+0

'

Что такое + ?

' – RomanPerekhrest

+0

@ РоманПерехрест, спасибо за ваш быстрый ответ. См. Мое редактирование. – Kieran

ответ

1

Существует (почти) всегда менее многословным способ делать вещи ,

<?php 
// functions for outputting inner and outer structure of matrices 
$inner = function($in){return '[ '.implode(' &nbsp;&nbsp; ', $in).' ]';}; 
$outer = function($in) use ($inner){return implode(',', array_map($inner, $in));}; 
?> 
<p> 
    <?php echo 'What is `['.$outer($matrixa).']` + `['.$outer($matrixb). ']` ?'; ?> 
</p> 

Вопрос, если это стоит сделать для такого небольшого набора данных. Во-вторых, читаемость/понятность кода. Один пример такого решения в проекте прост, почти милый, но когда это станет стандартом, он может быть живым адом для авторов, не являющихся авторами, и со временем для вас.

 Смежные вопросы

  • Нет связанных вопросов^_^