数组从SQL查询中推送行

时间:2015-12-22 15:56:47

标签: php sql fputcsv array-push

我正在尝试将SQL查询中的行(结果)保存到csv文件中。 我正在使用数组推送,以便将结果放入列表中。后来我把这个列表中的数据放到我的csv文件中。

我的代码:

    while ($row = $query->fetch_assoc()) 
{
    echo sprintf( $row['campaign']);
    array_push($list, $row['campaign']);

}

结果是因为sprintf有效。问题在于array_push的语法。我甚至尝试过:

array_push($list, array(''.$row['campaign']);

我收到错误:

  

fputcsv()期望参数2为数组

完整的代码在这里:

    $list = array 
    (
        array('old_campaign_name', 'new_campaign_name') 
    );

// table 1
$sql = ('select distinct(campaign) as campaign from '.$table1.'');

// Run the query
$query = $Db->query($sql);

// Check for SQL errors
if ($Db->error) 
{
    return ($Db->error);
}

// Put data in the list

while ($row = $query->fetch_assoc()) 
{
    echo sprintf( $row['campaign']);
    array_push($list,$row['campaign'],'');

}

$fp = fopen($location, 'w');

foreach ($list as $fields) 
{
    fputcsv($fp, $fields);
}

fclose($fp);

3 个答案:

答案 0 :(得分:1)

最初创建$list数组时,它是一个包含一个数组的数组。但是当您从查询结果中向其添加更多值时,您将字符串推送到它的末尾,而不是数组。实际上,您将制作类似

的内容
$list = array (
    array('old_campaign_name', 'new_campaign_name'),
    'first campaign',
    'second campaign',
    'etc.',
    ...
);

因此,当你循环$list时,第一个值应该与fputcsv一起使用,因为它是一个数组,但是任何后续值都是字符串而不是数组,会导致错误你看到了。

您应该可以像这样填写$list

while ($row = $query->fetch_assoc()) {
    $list[] = $row;
}

$list[] = $row不会覆盖$list中之前的值。来自the PHP documentation for array_push

  

注意:如果使用array_push()向数组添加一个元素,最好使用$ array [] =,因为这样就没有调用函数的开销。

答案 1 :(得分:1)

正如错误所说, private byte[] readHexString(string s) { int size = s.Length / 2; byte[] b = new byte[size]; if ((size != 16) && (size != 24) && (size != 32)) { throw new Exception(); } for (int i = 0; i < size; i++) { b[i] = Convert.ToByte(s.Substring(2 * i, 2), 16); } return (b); } private byte[] readAsciiString(string s) { byte[] b = new byte[s.Length]; b = System.Text.ASCIIEncoding.ASCII.GetBytes(s); return (b); } private void btnTest_Click(object sender, EventArgs e) { byte[] inputKey = readHexString(tbKey.Text); Key key = new Key(inputKey); Console.Out.WriteLine("\nkey:\n" + key); byte[] inputPlain = readAsciiString(tbPlain.Text); State inputState = new State(inputPlain); Console.Out.WriteLine("state:\n" + inputState.ToMatrixString()); //string outplain = ConvertHex(Encrypt(inputState, key)); string ciphertext = Encrypt(inputState, key); tbCiphertext.Text = ciphertext; byte[] inputPlain2 = readAsciiString(tbCiphertext.Text); State inputState2 = new State(inputPlain2); string plaintext = Decrypt(inputState2, key); Console.Out.WriteLine(plaintext); } private string Encrypt(State _inputState, Key k) { //string ciphertext; byte[] ciphertext; State thisState = _inputState; thisState = thisState.addRoundKey(k, 0); Console.Out.WriteLine(thisState.ToString()); for (int i = 1; i < 10; i++) { thisState = thisState.subBytes(); thisState = thisState.shiftRows(); thisState = thisState.mixColumns(); thisState = thisState.addRoundKey(k, i); Console.Out.WriteLine(thisState.ToString()); } thisState = thisState.subBytes(); thisState = thisState.shiftRows(); thisState = thisState.addRoundKey(k, 10); Console.Out.WriteLine(thisState.ToString()); ciphertext = readHexString(thisState.ToString()); string output = ""; for (int i = 0; i < ciphertext.Length; i++) { output += ciphertext[i]; } return ConvertHex(output); } public string Decrypt(State state, Key k) { byte[] plainText; State thisState = state.addRoundKey(k, 10); thisState = thisState.shiftRowsInv(); thisState = thisState.subBytesInv(); for (int i = 9; i > 0; i--) { thisState = thisState.addRoundKey(k, i); thisState = thisState.mixColumnsInv(); thisState = thisState.shiftRowsInv(); thisState = thisState.subBytesInv(); } thisState = thisState.addRoundKey(k, 0); plainText = readHexString(thisState.ToString()); string output = ""; for (int i = 0; i < plainText.Length; i++) { output += plainText[i]; } Console.Out.WriteLine(ConvertHex(output)); return ConvertHex(output); } public string ConvertHex(String hexString) { StringBuilder sb = new StringBuilder(); for (int i = 0; i <= hexString.Length - 2; i += 2) { sb.Append(Convert.ToString(Convert.ToChar(Int32.Parse(hexString.Substring(i, 2), System.Globalization.NumberStyles.HexNumber)))); } return sb.ToString(); } } } namespace Aes { public class State { private const int nrofRow = 4; private const int nrofCol = 4; private byte[,] buf; //multiplication tables taken from http://en.wikipedia.org/wiki/Rijndael_mix_columns private static byte[] mul2 = { 0x00,0x02,0x04,0x06,0x08,0x0a,0x0c,0x0e,0x10,0x12,0x14,0x16,0x18,0x1a,0x1c,0x1e, 0x20,0x22,0x24,0x26,0x28,0x2a,0x2c,0x2e,0x30,0x32,0x34,0x36,0x38,0x3a,0x3c,0x3e, 0x40,0x42,0x44,0x46,0x48,0x4a,0x4c,0x4e,0x50,0x52,0x54,0x56,0x58,0x5a,0x5c,0x5e, 0x60,0x62,0x64,0x66,0x68,0x6a,0x6c,0x6e,0x70,0x72,0x74,0x76,0x78,0x7a,0x7c,0x7e, 0x80,0x82,0x84,0x86,0x88,0x8a,0x8c,0x8e,0x90,0x92,0x94,0x96,0x98,0x9a,0x9c,0x9e, 0xa0,0xa2,0xa4,0xa6,0xa8,0xaa,0xac,0xae,0xb0,0xb2,0xb4,0xb6,0xb8,0xba,0xbc,0xbe, 0xc0,0xc2,0xc4,0xc6,0xc8,0xca,0xcc,0xce,0xd0,0xd2,0xd4,0xd6,0xd8,0xda,0xdc,0xde, 0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xee,0xf0,0xf2,0xf4,0xf6,0xf8,0xfa,0xfc,0xfe, 0x1b,0x19,0x1f,0x1d,0x13,0x11,0x17,0x15,0x0b,0x09,0x0f,0x0d,0x03,0x01,0x07,0x05, 0x3b,0x39,0x3f,0x3d,0x33,0x31,0x37,0x35,0x2b,0x29,0x2f,0x2d,0x23,0x21,0x27,0x25, 0x5b,0x59,0x5f,0x5d,0x53,0x51,0x57,0x55,0x4b,0x49,0x4f,0x4d,0x43,0x41,0x47,0x45, 0x7b,0x79,0x7f,0x7d,0x73,0x71,0x77,0x75,0x6b,0x69,0x6f,0x6d,0x63,0x61,0x67,0x65, 0x9b,0x99,0x9f,0x9d,0x93,0x91,0x97,0x95,0x8b,0x89,0x8f,0x8d,0x83,0x81,0x87,0x85, 0xbb,0xb9,0xbf,0xbd,0xb3,0xb1,0xb7,0xb5,0xab,0xa9,0xaf,0xad,0xa3,0xa1,0xa7,0xa5, 0xdb,0xd9,0xdf,0xdd,0xd3,0xd1,0xd7,0xd5,0xcb,0xc9,0xcf,0xcd,0xc3,0xc1,0xc7,0xc5, 0xfb,0xf9,0xff,0xfd,0xf3,0xf1,0xf7,0xf5,0xeb,0xe9,0xef,0xed,0xe3,0xe1,0xe7,0xe5 }; private static byte[] mul3 = { 0x00,0x03,0x06,0x05,0x0c,0x0f,0x0a,0x09,0x18,0x1b,0x1e,0x1d,0x14,0x17,0x12,0x11, 0x30,0x33,0x36,0x35,0x3c,0x3f,0x3a,0x39,0x28,0x2b,0x2e,0x2d,0x24,0x27,0x22,0x21, 0x60,0x63,0x66,0x65,0x6c,0x6f,0x6a,0x69,0x78,0x7b,0x7e,0x7d,0x74,0x77,0x72,0x71, 0x50,0x53,0x56,0x55,0x5c,0x5f,0x5a,0x59,0x48,0x4b,0x4e,0x4d,0x44,0x47,0x42,0x41, 0xc0,0xc3,0xc6,0xc5,0xcc,0xcf,0xca,0xc9,0xd8,0xdb,0xde,0xdd,0xd4,0xd7,0xd2,0xd1, 0xf0,0xf3,0xf6,0xf5,0xfc,0xff,0xfa,0xf9,0xe8,0xeb,0xee,0xed,0xe4,0xe7,0xe2,0xe1, 0xa0,0xa3,0xa6,0xa5,0xac,0xaf,0xaa,0xa9,0xb8,0xbb,0xbe,0xbd,0xb4,0xb7,0xb2,0xb1, 0x90,0x93,0x96,0x95,0x9c,0x9f,0x9a,0x99,0x88,0x8b,0x8e,0x8d,0x84,0x87,0x82,0x81, 0x9b,0x98,0x9d,0x9e,0x97,0x94,0x91,0x92,0x83,0x80,0x85,0x86,0x8f,0x8c,0x89,0x8a, 0xab,0xa8,0xad,0xae,0xa7,0xa4,0xa1,0xa2,0xb3,0xb0,0xb5,0xb6,0xbf,0xbc,0xb9,0xba, 0xfb,0xf8,0xfd,0xfe,0xf7,0xf4,0xf1,0xf2,0xe3,0xe0,0xe5,0xe6,0xef,0xec,0xe9,0xea, 0xcb,0xc8,0xcd,0xce,0xc7,0xc4,0xc1,0xc2,0xd3,0xd0,0xd5,0xd6,0xdf,0xdc,0xd9,0xda, 0x5b,0x58,0x5d,0x5e,0x57,0x54,0x51,0x52,0x43,0x40,0x45,0x46,0x4f,0x4c,0x49,0x4a, 0x6b,0x68,0x6d,0x6e,0x67,0x64,0x61,0x62,0x73,0x70,0x75,0x76,0x7f,0x7c,0x79,0x7a, 0x3b,0x38,0x3d,0x3e,0x37,0x34,0x31,0x32,0x23,0x20,0x25,0x26,0x2f,0x2c,0x29,0x2a, 0x0b,0x08,0x0d,0x0e,0x07,0x04,0x01,0x02,0x13,0x10,0x15,0x16,0x1f,0x1c,0x19,0x1a }; private static byte[] mul09 = { 0x00,0x09,0x12,0x1b,0x24,0x2d,0x36,0x3f,0x48,0x41,0x5a,0x53,0x6c,0x65,0x7e,0x77, 0x90,0x99,0x82,0x8b,0xb4,0xbd,0xa6,0xaf,0xd8,0xd1,0xca,0xc3,0xfc,0xf5,0xee,0xe7, 0x3b,0x32,0x29,0x20,0x1f,0x16,0x0d,0x04,0x73,0x7a,0x61,0x68,0x57,0x5e,0x45,0x4c, 0xab,0xa2,0xb9,0xb0,0x8f,0x86,0x9d,0x94,0xe3,0xea,0xf1,0xf8,0xc7,0xce,0xd5,0xdc, 0x76,0x7f,0x64,0x6d,0x52,0x5b,0x40,0x49,0x3e,0x37,0x2c,0x25,0x1a,0x13,0x08,0x01, 0xe6,0xef,0xf4,0xfd,0xc2,0xcb,0xd0,0xd9,0xae,0xa7,0xbc,0xb5,0x8a,0x83,0x98,0x91, 0x4d,0x44,0x5f,0x56,0x69,0x60,0x7b,0x72,0x05,0x0c,0x17,0x1e,0x21,0x28,0x33,0x3a, 0xdd,0xd4,0xcf,0xc6,0xf9,0xf0,0xeb,0xe2,0x95,0x9c,0x87,0x8e,0xb1,0xb8,0xa3,0xaa, 0xec,0xe5,0xfe,0xf7,0xc8,0xc1,0xda,0xd3,0xa4,0xad,0xb6,0xbf,0x80,0x89,0x92,0x9b, 0x7c,0x75,0x6e,0x67,0x58,0x51,0x4a,0x43,0x34,0x3d,0x26,0x2f,0x10,0x19,0x02,0x0b, 0xd7,0xde,0xc5,0xcc,0xf3,0xfa,0xe1,0xe8,0x9f,0x96,0x8d,0x84,0xbb,0xb2,0xa9,0xa0, 0x47,0x4e,0x55,0x5c,0x63,0x6a,0x71,0x78,0x0f,0x06,0x1d,0x14,0x2b,0x22,0x39,0x30, 0x9a,0x93,0x88,0x81,0xbe,0xb7,0xac,0xa5,0xd2,0xdb,0xc0,0xc9,0xf6,0xff,0xe4,0xed, 0x0a,0x03,0x18,0x11,0x2e,0x27,0x3c,0x35,0x42,0x4b,0x50,0x59,0x66,0x6f,0x74,0x7d, 0xa1,0xa8,0xb3,0xba,0x85,0x8c,0x97,0x9e,0xe9,0xe0,0xfb,0xf2,0xcd,0xc4,0xdf,0xd6, 0x31,0x38,0x23,0x2a,0x15,0x1c,0x07,0x0e,0x79,0x70,0x6b,0x62,0x5d,0x54,0x4f,0x46 }; private static byte[] mul11 = { 0x00,0x0b,0x16,0x1d,0x2c,0x27,0x3a,0x31,0x58,0x53,0x4e,0x45,0x74,0x7f,0x62,0x69, 0xb0,0xbb,0xa6,0xad,0x9c,0x97,0x8a,0x81,0xe8,0xe3,0xfe,0xf5,0xc4,0xcf,0xd2,0xd9, 0x7b,0x70,0x6d,0x66,0x57,0x5c,0x41,0x4a,0x23,0x28,0x35,0x3e,0x0f,0x04,0x19,0x12, 0xcb,0xc0,0xdd,0xd6,0xe7,0xec,0xf1,0xfa,0x93,0x98,0x85,0x8e,0xbf,0xb4,0xa9,0xa2, 0xf6,0xfd,0xe0,0xeb,0xda,0xd1,0xcc,0xc7,0xae,0xa5,0xb8,0xb3,0x82,0x89,0x94,0x9f, 0x46,0x4d,0x50,0x5b,0x6a,0x61,0x7c,0x77,0x1e,0x15,0x08,0x03,0x32,0x39,0x24,0x2f, 0x8d,0x86,0x9b,0x90,0xa1,0xaa,0xb7,0xbc,0xd5,0xde,0xc3,0xc8,0xf9,0xf2,0xef,0xe4, 0x3d,0x36,0x2b,0x20,0x11,0x1a,0x07,0x0c,0x65,0x6e,0x73,0x78,0x49,0x42,0x5f,0x54, 0xf7,0xfc,0xe1,0xea,0xdb,0xd0,0xcd,0xc6,0xaf,0xa4,0xb9,0xb2,0x83,0x88,0x95,0x9e, 0x47,0x4c,0x51,0x5a,0x6b,0x60,0x7d,0x76,0x1f,0x14,0x09,0x02,0x33,0x38,0x25,0x2e, 0x8c,0x87,0x9a,0x91,0xa0,0xab,0xb6,0xbd,0xd4,0xdf,0xc2,0xc9,0xf8,0xf3,0xee,0xe5, 0x3c,0x37,0x2a,0x21,0x10,0x1b,0x06,0x0d,0x64,0x6f,0x72,0x79,0x48,0x43,0x5e,0x55, 0x01,0x0a,0x17,0x1c,0x2d,0x26,0x3b,0x30,0x59,0x52,0x4f,0x44,0x75,0x7e,0x63,0x68, 0xb1,0xba,0xa7,0xac,0x9d,0x96,0x8b,0x80,0xe9,0xe2,0xff,0xf4,0xc5,0xce,0xd3,0xd8, 0x7a,0x71,0x6c,0x67,0x56,0x5d,0x40,0x4b,0x22,0x29,0x34,0x3f,0x0e,0x05,0x18,0x13, 0xca,0xc1,0xdc,0xd7,0xe6,0xed,0xf0,0xfb,0x92,0x99,0x84,0x8f,0xbe,0xb5,0xa8,0xa3 }; private static byte[] mul13 = { 0x00,0x0d,0x1a,0x17,0x34,0x39,0x2e,0x23,0x68,0x65,0x72,0x7f,0x5c,0x51,0x46,0x4b, 0xd0,0xdd,0xca,0xc7,0xe4,0xe9,0xfe,0xf3,0xb8,0xb5,0xa2,0xaf,0x8c,0x81,0x96,0x9b, 0xbb,0xb6,0xa1,0xac,0x8f,0x82,0x95,0x98,0xd3,0xde,0xc9,0xc4,0xe7,0xea,0xfd,0xf0, 0x6b,0x66,0x71,0x7c,0x5f,0x52,0x45,0x48,0x03,0x0e,0x19,0x14,0x37,0x3a,0x2d,0x20, 0x6d,0x60,0x77,0x7a,0x59,0x54,0x43,0x4e,0x05,0x08,0x1f,0x12,0x31,0x3c,0x2b,0x26, 0xbd,0xb0,0xa7,0xaa,0x89,0x84,0x93,0x9e,0xd5,0xd8,0xcf,0xc2,0xe1,0xec,0xfb,0xf6, 0xd6,0xdb,0xcc,0xc1,0xe2,0xef,0xf8,0xf5,0xbe,0xb3,0xa4,0xa9,0x8a,0x87,0x90,0x9d, 0x06,0x0b,0x1c,0x11,0x32,0x3f,0x28,0x25,0x6e,0x63,0x74,0x79,0x5a,0x57,0x40,0x4d, 0xda,0xd7,0xc0,0xcd,0xee,0xe3,0xf4,0xf9,0xb2,0xbf,0xa8,0xa5,0x86,0x8b,0x9c,0x91, 0x0a,0x07,0x10,0x1d,0x3e,0x33,0x24,0x29,0x62,0x6f,0x78,0x75,0x56,0x5b,0x4c,0x41, 0x61,0x6c,0x7b,0x76,0x55,0x58,0x4f,0x42,0x09,0x04,0x13,0x1e,0x3d,0x30,0x27,0x2a, 0xb1,0xbc,0xab,0xa6,0x85,0x88,0x9f,0x92,0xd9,0xd4,0xc3,0xce,0xed,0xe0,0xf7,0xfa, 0xb7,0xba,0xad,0xa0,0x83,0x8e,0x99,0x94,0xdf,0xd2,0xc5,0xc8,0xeb,0xe6,0xf1,0xfc, 0x67,0x6a,0x7d,0x70,0x53,0x5e,0x49,0x44,0x0f,0x02,0x15,0x18,0x3b,0x36,0x21,0x2c, 0x0c,0x01,0x16,0x1b,0x38,0x35,0x22,0x2f,0x64,0x69,0x7e,0x73,0x50,0x5d,0x4a,0x47, 0xdc,0xd1,0xc6,0xcb,0xe8,0xe5,0xf2,0xff,0xb4,0xb9,0xae,0xa3,0x80,0x8d,0x9a,0x97 }; private static byte[] mul14 = { 0x00,0x0e,0x1c,0x12,0x38,0x36,0x24,0x2a,0x70,0x7e,0x6c,0x62,0x48,0x46,0x54,0x5a, 0xe0,0xee,0xfc,0xf2,0xd8,0xd6,0xc4,0xca,0x90,0x9e,0x8c,0x82,0xa8,0xa6,0xb4,0xba, 0xdb,0xd5,0xc7,0xc9,0xe3,0xed,0xff,0xf1,0xab,0xa5,0xb7,0xb9,0x93,0x9d,0x8f,0x81, 0x3b,0x35,0x27,0x29,0x03,0x0d,0x1f,0x11,0x4b,0x45,0x57,0x59,0x73,0x7d,0x6f,0x61, 0xad,0xa3,0xb1,0xbf,0x95,0x9b,0x89,0x87,0xdd,0xd3,0xc1,0xcf,0xe5,0xeb,0xf9,0xf7, 0x4d,0x43,0x51,0x5f,0x75,0x7b,0x69,0x67,0x3d,0x33,0x21,0x2f,0x05,0x0b,0x19,0x17, 0x76,0x78,0x6a,0x64,0x4e,0x40,0x52,0x5c,0x06,0x08,0x1a,0x14,0x3e,0x30,0x22,0x2c, 0x96,0x98,0x8a,0x84,0xae,0xa0,0xb2,0xbc,0xe6,0xe8,0xfa,0xf4,0xde,0xd0,0xc2,0xcc, 0x41,0x4f,0x5d,0x53,0x79,0x77,0x65,0x6b,0x31,0x3f,0x2d,0x23,0x09,0x07,0x15,0x1b, 0xa1,0xaf,0xbd,0xb3,0x99,0x97,0x85,0x8b,0xd1,0xdf,0xcd,0xc3,0xe9,0xe7,0xf5,0xfb, 0x9a,0x94,0x86,0x88,0xa2,0xac,0xbe,0xb0,0xea,0xe4,0xf6,0xf8,0xd2,0xdc,0xce,0xc0, 0x7a,0x74,0x66,0x68,0x42,0x4c,0x5e,0x50,0x0a,0x04,0x16,0x18,0x32,0x3c,0x2e,0x20, 0xec,0xe2,0xf0,0xfe,0xd4,0xda,0xc8,0xc6,0x9c,0x92,0x80,0x8e,0xa4,0xaa,0xb8,0xb6, 0x0c,0x02,0x10,0x1e,0x34,0x3a,0x28,0x26,0x7c,0x72,0x60,0x6e,0x44,0x4a,0x58,0x56, 0x37,0x39,0x2b,0x25,0x0f,0x01,0x13,0x1d,0x47,0x49,0x5b,0x55,0x7f,0x71,0x63,0x6d, 0xd7,0xd9,0xcb,0xc5,0xef,0xe1,0xf3,0xfd,0xa7,0xa9,0xbb,0xb5,0x9f,0x91,0x83,0x8d }; private State() { buf = new byte[nrofRow, nrofCol]; for (int i = 0; i < nrofRow; i++) { for (int j = 0; j < nrofCol; j++) { buf[i, j] = 0; } } } public State(byte[] b) { buf = new byte[nrofRow, nrofCol]; for (int i = 0; i < nrofRow; i++) { for (int j = 0; j < nrofCol; j++) { buf[i, j] = b[i + (nrofRow * j)]; } } } public State subBytes() { State s = new State(); for (int i = 0; i < nrofRow; i++) { for (int j = 0; j < nrofCol; j++) { s.buf[i, j] = Sbox.sbox[buf[i, j]]; //Console.Out.WriteLine("state[" + i + "," + j + "]=" + buf[i, j] + "--->" + s.buf[i, j]); } } return (s); } public State shiftRows() { State s = new State(); for (int i = 0; i < nrofRow; i++) { for (int j = 0; j < nrofCol; j++) { s.buf[i, j] = buf[i, (i + j) % 4]; //Console.Out.WriteLine("state[" + i + "," + j + "]=" + s.buf[i, j]); } } return (s); } public State mixColumns() { State s = new State(); for (int c = 0; c < nrofCol; c++) { s.buf[0, c] = (byte)(mul2[buf[0, c]] ^ mul3[buf[1, c]] ^ buf[2, c] ^ buf[3, c]); s.buf[1, c] = (byte)(buf[0, c] ^ mul2[buf[1, c]] ^ mul3[buf[2, c]] ^ buf[3, c]); s.buf[2, c] = (byte)(buf[0, c] ^ buf[1, c] ^ mul2[buf[2, c]] ^ mul3[buf[3, c]]); s.buf[3, c] = (byte)(mul3[buf[0, c]] ^ buf[1, c] ^ buf[2, c] ^ mul2[buf[3, c]]); } return (s); } public State subBytesInv() { // TODO State s = new State(); for (int i = 0; i < nrofRow; i++) { for (int j = 0; j < nrofCol; j++) { s.buf[i, j] = Sbox.sboxInv[buf[i, j]]; //Console.Out.WriteLine("state[" + i + "," + j + "]=" + buf[i, j] + "--->" + s.buf[i, j]); } } return (s); } public State shiftRowsInv() { State s = new State(); for (int i = 0; i < nrofRow; i++) { for (int j = 0; j < nrofCol; j++) { s.buf[i, j] = buf[i, (j - i + 4) % 4]; // Console.Out.WriteLine("state[" + i + "," + j + "]=" + s.buf[i, j]); } } return (s); } public State mixColumnsInv() { State s = new State(); for (int c = 0; c < nrofCol; c++) { s.buf[0, c] = (byte)(mul14[buf[0, c]] ^ mul11[buf[1, c]] ^ mul13[buf[2, c]] ^ mul09[buf[3, c]]); s.buf[1, c] = (byte)(mul09[buf[0, c]] ^ mul14[buf[1, c]] ^ mul11[buf[2, c]] ^ mul13[buf[3, c]]); s.buf[2, c] = (byte)(mul13[buf[0, c]] ^ mul09[buf[1, c]] ^ mul14[buf[2, c]] ^ mul11[buf[3, c]]); s.buf[3, c] = (byte)(mul11[buf[0, c]] ^ mul13[buf[1, c]] ^ mul09[buf[2, c]] ^ mul14[buf[3, c]]); } return (s); } public State addRoundKey(Key key, int round) { State s = new State(); for (int c = 0; c < nrofCol; c++) { for (int r = 0; r < nrofRow; r++) { s.buf[r, c] = (byte)(buf[r, c] ^ key.w[r, c + 4 * round]); //Console.Out.WriteLine("state[" + r + "," + c + "]=" + buf[r, c] + " XOR " + key.w[r, c + 4 * round] + " = " + s.buf[r, c]); } } return (s); } public string ToMatrixString() { string s = ""; for (int i = 0; i < buf.GetLength(0); i++) { for (int j = 0; j < buf.GetLength(1); j++) { s += buf[i, j].ToString("X2") + " "; } s += "\n"; } return (s); } public override string ToString() { string s = ""; for (int i = 0; i < buf.GetLength(1); i++) { for (int j = 0; j < buf.GetLength(0); j++) { s += buf[j, i].ToString("X2") + ""; } }`enter code here` return (s); } } } 期望您放入的每一行都是一个数组,因此它可以用逗号分隔元素来写出来。 fputcsv应该是一个二维数组,因此您需要在构建数组时将数组推到其上。

$list

BTW,while ($row = $query->fetch_assoc() { $list[] = array($row['campaign']); } 相当于$list[] = x

答案 2 :(得分:0)

它的工作原理如下:

while ($row = $query->fetch_assoc()) 
{
    // array_push($list,$row['campaign'],'');
    array_push($list,array($row['campaign'], ''));

}