如何将双数组从PHP传递到C#

如何将双数组从PHP传递到C#,c#,php,C#,Php,我有一个.net C#函数,它将双精度数组作为第一个参数,并基于第一个参数传回另一个双精度数组 C#代码 public int testMath(双[]输入集,双[]输出集) { //比我展示的更复杂但是 对于(int i=0;i

我有一个.net C#函数,它将双精度数组作为第一个参数,并基于第一个参数传回另一个双精度数组

C#代码

public int testMath(双[]输入集,双[]输出集)
{
//比我展示的更复杂但是
对于(int i=0;i<3;i++)
{
输出集[i]=输入集[i]*2.0;
}
return 1;//真的是其他东西吗
}
PHP

$mathTest=new DOTNET(“mathTest,”
“版本=1.0.0.0,”
“文化=中立,”
“PublicKeyToken=213536b1e6bb8ea5”
,“MathTest.MathTest”);
$inputValue=Array();
$outputValue=Array();
对于($i=0;$i<3;$i++){
$inputValue[$i]=$i*3.0;
$outputValue[$i]=0.0;
}
$status=$mathTest->testMath($inputValue,$outputValue);
当我尝试运行此操作时,我得到一个错误,即参数1的类型不匹配。

我还有其他一些例程,它们以double作为输入,按ref输出,正如我所期望的那样工作。我可以从其他编程语言中调用这个例程,但如何让它在PHP中工作却让我感到困惑。我尝试使用com_print_typeinfo查看参数,发现两个参数都显示为VT_SAFEARRAY,如中所示。我做了一些测试,将参数1改为OUT,结果变得更糟(根本不会运行)。任何建议都将不胜感激。

imo最简单的方法是将双数组编码为json

来自php

json_encode ($myarr);

然后在c#中捕捉它(反之亦然)并解码它。
你可以使用json.net或jsonFx等。

说真的,为什么需要在C#中使用呢?还是反过来?这似乎是一件可怕的事情。谢谢,这很有效。我以前没有使用过json,所以我必须在我的VisualStudio配置中安装它。几次失误后,我使它开始工作了。
$mathTest = new DOTNET("MathTest,"
        ."Version=1.0.0.0,"
        ."Culture=neutral,"
        ."PublicKeyToken=213536b1e6bb8ea5"
        , "MathTest.MathTest");

$inputValue = Array();
$outputValue = Array();

for ($i = 0; $i < 3; $i++){
  $inputValue[$i] = $i * 3.0;
  $outputValue[$i] = 0.0;
}

$status = $mathTest->testMath($inputValue, $outputValue);
json_encode ($myarr);
  json_decode ($myarr); // if u want the other direction