我正在尝试修复我的公司在我加入之前委托的第三方 wordpress 插件,现在该第三方公司没有响应/不愿意提供帮助。我在 WP 网站上有一个表格,它从下拉菜单中获取信息,然后根据某些参数使用它来计算客户需要哪种产品。我有一个应该采用变量的计算函数,根据该变量获取数组信息,然后根据该信息进行计算:
function calculation($d){
//$wind = pW($d['windSpeed']);
$pad_data = anchor($d['site']);
//if($d['site'] == "concrete"){
$da = [];
foreach($pad_data as $key => $value){
foreach($value as $k => $v){
if($d['site'] == "ground" && strpos($k,"concrete") !== false){
continue;
}elseif($d['site'] == "concrete" && strpos($k,"ground") !== false){
continue;
}
$foi = foi($v,$d);
if($foi > 1){
if($k == "noanchor"){
$de[] = $key." Pad with ".$v['nanchor']." anchor";
}else{
$de[] = $key." Pad with ".$v['nanchor']." ".$k." anchor";
}
//print_r($d);
return json_encode($de);
}
}
}
//}
//print_r($da);
// foreach($da as $r =>){
// if($r)
// }
}
但是它总是返回相同的回复。锚函数如下所示:
function anchor(){
$array[36] = [
"noanchor" => [
"lpad" => 36,
"hpad" => 4,
"wpad" => 162,
"wanchor" => 205,
"nanchor" => 0,
"apw" => 162
],
"ground_1" => [
"lpad" => 36,
"hpad" => 4,
"wpad" => 162,
"wanchor" => 205,
"nanchor" => 2,
"apw" => 572
],
"ground_2" => [
"lpad" => 36,
"hpad" => 4,
"wpad" => 162,
"wanchor" => 205,
"nanchor" => 4,
"apw" => 982
],
"concrete" => [
"lpad" => 36,
"hpad" => 4,
"wpad" => 162,
"wanchor" => 232,
"nanchor" => 4,
"apw" => 1092.4
]
];
$array[40] = [
"noanchor" => [
"lpad" => 40,
"hpad" => 4,
"wpad" => 200,
"wanchor" => 205,
"nanchor" => 0,
"apw" => 200
],
"ground_1" => [
"lpad" => 40,
"hpad" => 4,
"wpad" => 200,
"wanchor" => 205,
"nanchor" => 2,
"apw" => 610
],
"ground_2" => [
"lpad" => 40,
"hpad" => 4,
"wpad" => 200,
"wanchor" => 205,
"nanchor" => 4,
"apw" => 1020
],
"concrete" => [
"lpad" => 40,
"hpad" => 4,
"wpad" => 200,
"wanchor" => 232,
"nanchor" => 4,
"apw" => 1130
]
];
return $array;
}
并且当我输入 var_dump(anchor());
或 print_r(anchor());
时,无论我传递什么参数,它总是给出相同的答复。这些功能:
var_dump(anchor($array[40]));
var_dump(anchor([36],['noanchor']));
两者都给出相同的答复:
array (size=2)
36 =>
array (size=4)
'noanchor' =>
array (size=6)
'lpad' => int 36
'hpad' => int 4
'wpad' => int 162
'wanchor' => int 205
'nanchor' => int 0
'apw' => int 162
'ground_1' =>
array (size=6)
'lpad' => int 36
'hpad' => int 4
'wpad' => int 162
'wanchor' => int 205
'nanchor' => int 2
'apw' => int 572
'ground_2' =>
array (size=6)
'lpad' => int 36
'hpad' => int 4
'wpad' => int 162
'wanchor' => int 205
'nanchor' => int 4
'apw' => int 982
'concrete' =>
array (size=6)
'lpad' => int 36
'hpad' => int 4
'wpad' => int 162
'wanchor' => int 232
'nanchor' => int 4
'apw' => float 1092.4
40 =>
array (size=4)
'noanchor' =>
array (size=6)
'lpad' => int 40
'hpad' => int 4
'wpad' => int 200
'wanchor' => int 205
'nanchor' => int 0
'apw' => int 200
'ground_1' =>
array (size=6)
'lpad' => int 40
'hpad' => int 4
'wpad' => int 200
'wanchor' => int 205
'nanchor' => int 2
'apw' => int 610
'ground_2' =>
array (size=6)
'lpad' => int 40
'hpad' => int 4
'wpad' => int 200
'wanchor' => int 205
'nanchor' => int 4
'apw' => int 1020
'concrete' =>
array (size=6)
'lpad' => int 40
'hpad' => int 4
'wpad' => int 200
'wanchor' => int 232
'nanchor' => int 4
'apw' => int 1130
和print_r(anchor([36],["noanchor"]));
和print_r(anchor(40));
两者都给出相同的输出:
Array ( [36] => Array ( [noanchor] => Array ( [lpad] => 36 [hpad] => 4 [wpad] => 162 [wanchor] => 205 [nanchor] => 0 [apw] => 162 ) [ground_1] => Array ( [lpad] => 36 [hpad] => 4 [wpad] => 162 [wanchor] => 205 [nanchor] => 2 [apw] => 572 ) [ground_2] => Array ( [lpad] => 36 [hpad] => 4 [wpad] => 162 [wanchor] => 205 [nanchor] => 4 [apw] => 982 ) [concrete] => Array ( [lpad] => 36 [hpad] => 4 [wpad] => 162 [wanchor] => 232 [nanchor] => 4 [apw] => 1092.4 ) ) [40] => Array ( [noanchor] => Array ( [lpad] => 40 [hpad] => 4 [wpad] => 200 [wanchor] => 205 [nanchor] => 0 [apw] => 200 ) [ground_1] => Array ( [lpad] => 40 [hpad] => 4 [wpad] => 200 [wanchor] => 205 [nanchor] => 2 [apw] => 610 ) [ground_2] => Array ( [lpad] => 40 [hpad] => 4 [wpad] => 200 [wanchor] => 205 [nanchor] => 4 [apw] => 1020 ) [concrete] => Array ( [lpad] => 40 [hpad] => 4 [wpad] => 200 [wanchor] => 232 [nanchor] => 4 [apw] => 1130 ) ) )
也许这不是整体问题,但似乎我无法从 anchor() 得到另一个响应。我已经贪婪地搜索了像上面这样的数组的 php 函数,但我找不到任何东西。我知道,如果只设置 $array[36] = [所有信息] 的数组,我可以通过执行 print_r($array[36]) 来检索它,甚至指定嵌套数组的各个部分。但是这个插件在某些时候确实有效,所以我试图不必从第一个开始。我 100% 确信代码的步骤在将数据发送到计算函数之前可以工作,但我不知道在那之后问题出在哪里。如果需要,我可以提供更多代码或更多整体图片,但我的主要问题是如何获得所需的 $pad_data = anchor($d['site']) 输出以实际从数组中获取所需信息. $d 是传递的数据,'site' 是数据中的数组项之一。数据数组打印为:
Array(
[windSpeed] => 140
[manufacturer] => Rheem
[series] => RP20
[Nominal_Capacity] => 5.0
[modelNumber] => RP2060
[weight] => 355
[lenght] => 35.7500
[width] => 35.7500
[height] => 51.0000
[site] => concrete
)
是的,我知道 length 拼写错误,但最初写它的人每次都写错了,我只是还没有改变。
非常欢迎任何指导!
答案 0 :(得分:0)
答案是,在代码中,他们只是将变量设置为一个数组,然后尝试访问该变量,就好像它包含一些内部逻辑一样。您可以将 $pad_data 用作数组变量,而无需将任何参数传递给锚点“函数”。总的来说,这是应用功能方面的一个小问题,但这是我问题的这一部分的答案。