2016-08-05 84 views
0

我在PHP中爲多個OneSignal標籤追加數組中的每個元素都很困難。這是我目前的JSON編碼數組的結果:PHP追加數組中的每個元素

[{"value":"[email protected]"}, 
{"value":"[email protected]"}, 
{"value":"[email protected]"}] 

所需的輸出:

[{"key":"user_email","relation":"=","value":"[email protected]"}, 
{"key":"user_email","relation":"=","value":"[email protected]"}, 
{"key":"user_email","relation":"=","value":"[email protected]"}] 

這裏是我當前的PHP代碼:

$jsonData = array(); 

$allStaffInit = mysql_query("Select * from users"); 

while ($staffrow = mysql_fetch_object($allStaffInit)){ 

    $jsonData[] = $staffrow; 

} 

echo json_encode($jsonData); 

任何幫助,不勝感激!謝謝!

+3

停止**棄用,作爲PHP7除去**'mysql_ *'功能。遷移到PDO並開始使用Prepared,Parameterized Queries。 –

+0

'$ jsondata [] = array('key'=> $ key,'relation'=> $ rel,'value'=> $ val);' –

回答

1

嘗試用

$object = new stdClass(); 
$object->key = "user_email"; 
$object->relation = "="; 
$object->value = $staffrow->value; 

$jsonData[] = $object; 

我在瀏覽器中輸入該更換

$jsonData[] = $staffrow; 

,所以無法測試,但你的想法(如果你不明白我的意思,問評論:)

+0

這很好用!謝謝! – pixeloft

0

如果您必須使用mysql_函數,則不需要手動構造對象或數組,只需將結果集作爲數組使用即可。

while ($staffrow = mysql_fetch_assoc($allStaffInit)){ 
    $jsonData[] = $staffRow; 
} 

但我認真地推薦您至少升級到使用mysqli擴展替代。你不會真的需要調整你的代碼。使用

http://php.net/manual/en/book.mysqli.php