将 PHP 数组转换为 C#

我需要帮助将 php 数组转换为下面的红色。我已经能够将一些数组转换为字典,但不确定最好的解决方案是什么,因为这是一个数组内部的数组。


$reg_rows=array();

$rc_count=0;

$reg_counter=0;

$hold_achtrndt="1970-01-01";

$hold_regpay_sort="0";

while ( ($row_rc=sqlsrv_fetch_assoc($result_rc)) ) 

    {

    if ( strtoupper(substr($row_rc['tb_value1'],4,1))=="Y" )

          $reg_counter=count($reg_rows);  //If the paymethod is set to require it's own deposit, increment

    elseif ( $row_rc['regpay_sort']!=$hold_regpay_sort ) 

    {

        $reg_counter=count($reg_rows);  //If the paymethod changes, increment so each different type is separated

        $hold_regpay_sort=$row_rc['regpay_sort'];

    }

    **$reg_rows[$reg_counter][$row_rc['rc_code']]=$row_rc;** //THIS IS THE ARRAY I NEED HELP WITH

    $rc_count++;

}

如果我向您展示我想要得到的东西,也许会更容易。下面的示例。where 0and1将是 reg_counter 和5514, 5115,5116将是 the$row_rc['rc_code']和 thearray[78]是从 SQL 表返回的字段。


$reg_rows[0][5515]{array[78]}

$reg_rows[1][5514]{array[78]}

$reg_rows[1][5516]{array[78]}


慕哥9229398
浏览 242回答 1
1回答

慕的地8271018

正如您所说,您在数组的值中有一个关联数组¹。在 C# 中,您将在数组的值或外部字典的值中放置一个字典。更准确地说,如果我们事先知道外部数组的大小,我们可以这样写var size = 42; // let's assume we know this somehowvar outer = new Dictionary<InnerKey, InnerValue>[size];for (int i = 0; i < size; i++) {&nbsp; for (key in some_source) {&nbsp; &nbsp; var value = some_function(key);&nbsp; &nbsp; if (outer[i] == null) {&nbsp; &nbsp; &nbsp; outer[i] = new Dictionary<InnerKey, InnerValue>();&nbsp; &nbsp; }&nbsp; &nbsp; outer[i].Add(somekey, somevalue);&nbsp; }}但是,在这种情况下,我们事先并不知道数组的大小,并且在 C# 中动态调整数组的大小会很痛苦,所以我们将使用一个其值本身就是字典的字典:var outer = new Dictionary<Int, Dictionary<InnerKey, InnerValue>>;for (int i = 0; i < size; i++) {&nbsp; for (key in some_source) {&nbsp; &nbsp; var value = some_function(key);&nbsp; &nbsp; if (!outer.ContainsKey(i)) {&nbsp; &nbsp; &nbsp; outer.Add(i, new Dictionary<InnerKey, InnerValue>());&nbsp; &nbsp; }&nbsp; &nbsp; outer[i].Add(somekey, somevalue);&nbsp; }}请注意,您还可以使用d[k] = v. 如果键已经存在,d[k] = v将覆盖其值,但d.Add(k, v)会引发异常,因此Add如果您知道键应该是唯一的,那么使用它会更安全。为了更清晰的代码,以一些稍微复杂的功能为代价,您可以摆脱使用DefaultDictionary. 您也很可能通过使用 LINQ 摆脱循环。它看起来很像带有一些 C# 语法的 SQL,并且能够操作 C# 列表、字典、数组等。您正在使用的 SQL 绑定甚至可能具有 LINQ 接口!¹ 键不是整数的数组通常称为关联数组(它将值与键相关联)。
打开App,查看更多内容
随时随地看视频慕课网APP