我有一段抛出错误的 PHP 代码;
注意:数组到字符串的转换。
这是因为由于某种原因$deviceToken
它应该是一个字符串时是一个数组。
我不明白为什么 PHP 认为它是一个数组。当我打印 mysqli 查询的结果数组时,它会在数组中显示一个数组,因此,它认为$deviceToken
是一个数组。我只想要一个数组,$rows
并$deviceToken
成为数组的值变量。因此,稍后在$deviceToken
二进制文件中读取的代码中,它会抛出另一个错误,因为它显然是一个数组,而不是一个字符串。请参阅下面的代码:
// Create an array of units assigned to call
$unitsarray = explode(",", $units);
for ($i = 0; $i < count($unitsarray); $i++){
echo "Units row $i = $unitsarray[$i] <br />";
$result = $mysqli->query("SELECT devicetoken FROM `department devices` WHERE unit LIKE $unitsarray[$i]");
while($row = $result->fetch_assoc()) {
$rows[] = $row;
}
echo "ResultsArray = ";
print_r($rows);
// Loop APNS for each device token in $devicetoken array
foreach ($rows as $deviceToken)
{
// Build the binary notification
$msg = chr(0) . pack('n', 32) . pack("H*", $deviceToken) . pack('n', strlen($payload)) . $payload;
// Send it to the server
$result2 = fwrite($fp, $msg, strlen($msg));
// Create APNS operation output
if (!$result2)
echo 'Failed message'.PHP_EOL;
else
echo "<b>Successful message sent:</b> $call - $location - $station - $units to device(s): '$deviceToken </br>".PHP_EOL;
}
}
结果数组输出如下所示:
ResultsArray = Array (
[0] => Array (
[devicetoken] => 773f5436825a7115417d3d1e036da20e806efeef547b7c3fe4da724d97c01b30
)
)