给定一个字符串数组,例如 $a:
$a = array("zero", "one", "cat");
我正在寻找创建数组 $b,用来自 $a 的值填充“沿对角线”:
$b[0] = ["zero", "-", "-"]
$b[1] = ["-", "one", "-"]
$b[3] = ["-", "-", "cat"]
到目前为止,我有:
function matrix($m, $n, $value) {
return array_fill(0, $m, array_fill(0, $n, $value));
} // create a matrix (m,n) of $value
$a = array("zero", "one", "cat");
$b = matrix(count($a),count($a),"'-'"); // create $b, filled with '-'
for($i = 0; $i < count($a); $i++){
$b[$i][$i] = $a[$i];
} // fill matrix b with strings from a, along the diagonal
print_r($b);
在实践中,$a 会非常大,所以我正在寻找一种使服务器瘫痪的可能性最小的方法。
(如果您像我 8 岁一样解释您的版本,则非常感谢。)