Я пытаюсь использовать Google Cloud Messaging (GCM) для перемещения двумерного массива на устройство. Однако я обнаружил, что GCM может отправлять только один массив за один раз.GCM PHP - Передача двумерного массива
Я ищу решение для решения этой проблемы. Потому что я думаю, что нецелесообразно продолжать толкать информацию один за другим.
Ниже приведены два различных сценария
Одномерный массив (который успешно нажать на устройство)
Array
(
[pump_name] => LEVO 92
[pump_price] => 2.5
)
1
{"multicast_id":8959934119853137719,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1445482576757470%9dde29c5f9fd7ecd"}]}
Array
(
[pump_name] => LEVO 95
[pump_price] => 3
)
1
{"multicast_id":6988128903201803494,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1445482576797158%9dde29c5f9fd7ecd"}]}
двухмерного массива (который не в состоянии нажать на устройство)
Array
(
[0] => Array
(
[pump_name] => LEVO 92
[pump_price] => 2.5
)
[1] => Array
(
[pump_name] => LEVO 95
[pump_price] => 3
)
)
1
Field "data" must be a JSON array: [{"pump_name":"LEVO 92","pump_price":"2.5"},{"pump_name":"LEVO 95","pump_price":"3"}]
коды (я разделить его на две части)
насос Цена Функция
function pump_price() {
global $wpdb;
$result = array();
$temp_result = array();
$counter = 1;
$rows = $wpdb->get_results($wpdb->prepare("SELECT DISTINCT meta_value FROM postmeta WHERE meta_key LIKE %s", 'pump_price_list_%', 'pump_%'));
if($rows) :
foreach($rows AS $row) :
if($counter % 2 == 0) :
// Store Value Into Temporary Array
$temp_result["pump_price"] = $row->meta_value;
array_push($result, $temp_result);
// Unset Temporary Array
unset($temp_result);
$temp_result = array();
else :
$temp_result['pump_name'] = $row->meta_value;
endif;
$counter++;
endforeach;
endif;
sendGoogleCloudMessage($result);
}
GCM Функция
function sendGoogleCloudMessage($result) {
define('API_ACCESS_KEY', 'MY-API-KEY');
$registrationIds = array('MY-DEVICE-ID');
$headers = array (
'Authorization: key=' . API_ACCESS_KEY,
'Content-Type: application/json'
);
$fields = array (
'registration_ids' => $registrationIds,
'data' => $result
);
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, 'https://android.googleapis.com/gcm/send');
curl_setopt($ch,CURLOPT_POST, true);
curl_setopt($ch,CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_POSTFIELDS, json_encode($fields));
$results = curl_exec($ch);
curl_close($ch);
echo $results;
}
Спасибо, что ответили! Позвольте мне попробовать. Вернитесь к вам позже. – WeeHong
Привет, спасибо, за ваше предложение. Мне удалось это сделать, добавив маленькую вещь внутри моего кода. – WeeHong
@ Kane приветствуются – Ali