我正在解决这个无法理解的脚本,甚至不知道从哪里开始。也许有人会帮助我。 我有两个数组示例:
$a1 = array(1,2,3 ...);
$a2 = array(4,5,6 ...);
我需要的是第一个数组将所有值除以其 为此,我想获得将像这样工作的脚本(可以将数组值保存为相同的名称,因为无论如何都将继续使用它们,可以是新变量,在此示例中,我使用new)。以同样的方式,变量本身可以被指定为1,但不愿意。计数示例。
$b1 = array([0]/[1], [0]/[2], [0]/[3], [1]/[0], [1]/[2], [1]/[3], [2]/[0], [2]/[1], [2]/[3], [3]/[0], [3]/[1], [3]/[2]);
$b2 = array( *** The same like $b1 ***);
最后会去foreach将值写入表,这个我已经解决了
echo "<table><tr>";
foreach($b1 as $key1 => $val1){
foreach($b2 as $key2 =>$val2){
echo "<td>".$key1.$key2."<br/>".val1*val2."</td>";
}
echo "</tr><tr>";
}
echo "</tr></table>"
任何人都可以帮助我解决这个问题吗?
答案 0 :(得分:0)
每个元素的划分相对简单。您用2 for循环来做。但是,必须记住的一件事是避免被0除。您是否有可能为0的元素?如果是这样,您是否希望除法结果为0或与分子相同?我在下面显示的代码假定使用后者:
function getDivided($array) {
$length = count($array);
$return = [];
for ($i = 0; $i < $length; $i++) {
for ($j = 0; $j < $length; $j++) {
if ($i === $j) continue;
//the following assumes that the values in the array are never < 1 Change this according to your needs
$return[] = $array[$i] / max($array[$j], 1);
//Another option is to use a conditional
$return[] = $array[$j] === 0 ? $array[$i] : $array[$i] / $array[$j];
}
}
return $return;
}
$b1 = getDivided($a1);
$b2 = getDivided($a2);