如何比较 2 个嵌套索引长度?
How do I compared 2 nested index lengths?
第一次在这里发帖,尽量按照提问指南,如有遗漏请见谅。
我在 PHP 中得到了一个多维数组,但结果数量不同。 Array[0] 包含 6 而 Array[1] 只包含 4。这是一个例子:
Array
(
[0] => Array
(
[0] => 122.7799987793
[1] => 121.95999908447
[2] => 121.90000152588
[3] => 122.94000244141
[4] => 122.18000030518
[5] => 119.7200012207
)
[1] => Array
(
[0] => 37.705001831055
[1] => 37.759998321533
[2] => 37.889999389648
[3] => 38.520000457764
)
)
我使用以下代码设法对这 2 个多维数组求和:
$finalresult = array();
foreach($newarray[0] as $k => $v){
$finalresult[$k] = array_sum(array_column($newarray, $k));
}
所以我的结果是:
Array
(
[0] => Array
(
[0] => 160.4850006104
[1] => 159.719997406
[2] => 159,7900009155
[3] => 161,4600028992
[4] => 122.18000030518
[5] => 119.7200012207
)
)
因此 SUM 对于前 4 个值工作正常,但最后两个值与模式不匹配。
我想要实现的目标:
在我的数据库中,我得到了每个数组的平均数。所以基本上我希望 array_sum 做的是:
array[0] + array[0]
array[1] + array[1]
array[2] + array[2]
array[3] + array[3]
array[4] + AVERAGE_VAR
array[5] + AVERAGE_VAR
总而言之:我正在努力实现具有较少值的数组被我从 MySQL 数据库中提取的 average_variable_number 填充。
我尝试了一些东西,但我无法理解它。我已经搜索了几天,但没有任何运气或我必须研究的提示。
希望有人可以向我展示 foreach 函数实现上述目标的示例。
提前百万感谢!!!
如果总是只有2个数组,可以循环到较长的长度,然后测试该元素是否存在于两个数组中,将不存在的元素替换为默认值。
$len = max(count($newarray[0]), count($newarray[1]));
for ($i = 0; $i < len; $i++) {
$val1 = array_key_exists($i, $newarray[0]) ? $newarray[0][$i] : $default;
$val2 = array_key_exists($i, $newarray[1]) ? $newarray[1][$i] : $default;
$finalresult[$i] = $val1 + $val2;
}
第一次在这里发帖,尽量按照提问指南,如有遗漏请见谅。
我在 PHP 中得到了一个多维数组,但结果数量不同。 Array[0] 包含 6 而 Array[1] 只包含 4。这是一个例子:
Array
(
[0] => Array
(
[0] => 122.7799987793
[1] => 121.95999908447
[2] => 121.90000152588
[3] => 122.94000244141
[4] => 122.18000030518
[5] => 119.7200012207
)
[1] => Array
(
[0] => 37.705001831055
[1] => 37.759998321533
[2] => 37.889999389648
[3] => 38.520000457764
)
)
我使用以下代码设法对这 2 个多维数组求和:
$finalresult = array();
foreach($newarray[0] as $k => $v){
$finalresult[$k] = array_sum(array_column($newarray, $k));
}
所以我的结果是:
Array
(
[0] => Array
(
[0] => 160.4850006104
[1] => 159.719997406
[2] => 159,7900009155
[3] => 161,4600028992
[4] => 122.18000030518
[5] => 119.7200012207
)
)
因此 SUM 对于前 4 个值工作正常,但最后两个值与模式不匹配。
我想要实现的目标: 在我的数据库中,我得到了每个数组的平均数。所以基本上我希望 array_sum 做的是:
array[0] + array[0]
array[1] + array[1]
array[2] + array[2]
array[3] + array[3]
array[4] + AVERAGE_VAR
array[5] + AVERAGE_VAR
总而言之:我正在努力实现具有较少值的数组被我从 MySQL 数据库中提取的 average_variable_number 填充。
我尝试了一些东西,但我无法理解它。我已经搜索了几天,但没有任何运气或我必须研究的提示。
希望有人可以向我展示 foreach 函数实现上述目标的示例。
提前百万感谢!!!
如果总是只有2个数组,可以循环到较长的长度,然后测试该元素是否存在于两个数组中,将不存在的元素替换为默认值。
$len = max(count($newarray[0]), count($newarray[1]));
for ($i = 0; $i < len; $i++) {
$val1 = array_key_exists($i, $newarray[0]) ? $newarray[0][$i] : $default;
$val2 = array_key_exists($i, $newarray[1]) ? $newarray[1][$i] : $default;
$finalresult[$i] = $val1 + $val2;
}