2017-02-22 5 views
1

このトピックに関するさまざまな質問がありますが、ほとんどは連想配列などです。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のいくつかの並べ替えのために使用されますが、 私の質問は、彼らがのライン内の次の形式で表示されるように、私は行列Aと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

'

<?php echo $ matrixa [0] [0]とは何ですか? ?> + <?php echo $ matrixb [0] [0]; ?>?

' – RomanPerekhrest

+0

@RomanPerekhrest、迅速な返信に感謝します。私の編集を見てください。 – 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> 

質問があれば、このような小さなデータセットでは価値があります。 2つ目は、コードの可読性/理解容易性です。プロジェクトの中でこのようなソリューションの1つのインスタンスは許され、ほとんどかわいそうですが、これが標準になると、コードの非作者にとっても、時にはあなたにとっても生き残ることができます。