我正在研究一个项目,我无法解决需要在多维数组上进行的计算。快速背景,这是一个酒店基准测试工具,我需要计算市场渗透指数(MPI)。我有一个包含3个主阵列的数组。前两个是正在比较的酒店,最后一个是MPI阵列。
每个数组都包含用户选择的每个月的数组。 THAT数组内部是需要用于计算的数据。 这是一个例子:
Array
(
[Competitive set] => Array
(
[Sep 11] => Array
(
[0] => Array
(
[minmonth] => 2011-09-01
[maxmonth] => 2011-09-01
[nrcheck] => 13
[data] => 67.6
)
)
[Oct 11] => Array
(
[0] => Array
(
[minmonth] => 2011-10-01
[maxmonth] => 2011-10-01
[nrcheck] => 13
[data] => 63.6
)
)
[Nov 11] => Array
(
[0] => Array
(
[minmonth] => 2011-11-01
[maxmonth] => 2011-11-01
[nrcheck] => 13
[data] => 59.2
)
)
[Dec 11] => Array
(
[0] => Array
(
[minmonth] => 2011-12-01
[maxmonth] => 2011-12-01
[nrcheck] => 13
[data] => 54.6
)
)
)
[Test] => Array
(
[Sep 11] => Array
(
[0] => Array
(
[minmonth] => 2011-09-01
[maxmonth] => 2011-09-01
[nrcheck] => 89
[data] => 71.5
)
)
[Oct 11] => Array
(
[0] => Array
(
[minmonth] => 2011-10-01
[maxmonth] => 2011-10-01
[nrcheck] => 89
[data] => 67.0
)
)
[Nov 11] => Array
(
[0] => Array
(
[minmonth] => 2011-11-01
[maxmonth] => 2011-11-01
[nrcheck] => 91
[data] => 63.1
)
)
[Dec 11] => Array
(
[0] => Array
(
[minmonth] => 2011-12-01
[maxmonth] => 2011-12-01
[nrcheck] => 89
[data] => 57.5
)
)
)
[MPI] => Array
(
[Sep 11] => Array
(
[0] => Array
(
[minmonth] => 2011-09-01
[maxmonth] => 2011-09-01
[nrcheck] => 89
[data] => 71.5
)
)
[Oct 11] => Array
(
[0] => Array
(
[minmonth] => 2011-10-01
[maxmonth] => 2011-10-01
[nrcheck] => 89
[data] => 67.0
)
)
[Nov 11] => Array
(
[0] => Array
(
[minmonth] => 2011-11-01
[maxmonth] => 2011-11-01
[nrcheck] => 91
[data] => 63.1
)
)
[Dec 11] => Array
(
[0] => Array
(
[minmonth] => 2011-12-01
[maxmonth] => 2011-12-01
[nrcheck] => 89
[data] => 57.5
)
)
)
)
这是一个带有var_export的pastebin(建议似乎没有格式化) http://pastebin.com/b8hYM7TW 很抱歉这个巨大的代码块,但它必须是这个大=( 无论哪种方式,目前MPI的“数据”都是错误的。这需要成为第一个数组的数据除以第二个数组的数据并乘以100(百分比)。
“竞争集”和“测试”键是可变的,在我正在使用的范围内不可用,因此无法使用这些静态名称。
我读过有关递归函数但我还没有得到它......
答案 0 :(得分:0)
你提供的pastebin数组在“Dit hotel”数组中没有任何数据,所以我无法确认这是否有效,但是你去了
foreach ($array['Dit hotel'] as $key => $value) {
$array['MPI'][$key][0]['data'] = $value[0]['data'] / $array['Test'][$key][0]['data'] * 100;
}