我正在尝试将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);
答案 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'], ''));
}