PHP将每个元素附加到数组中

时间:2016-08-05 16:55:39

标签: php mysql arrays json onesignal

我很难将PHP中的每个元素附加到多个OneSignal标记中。这是我当前的JSON编码数组的结果:

[{"value":"email@address.com"},
{"value":"email@address.com"},
{"value":"email@address.com"}]

期望的输出:

[{"key":"user_email","relation":"=","value":"email@address.com"},
{"key":"user_email","relation":"=","value":"email@address.com"},
{"key":"user_email","relation":"=","value":"email@address.com"}]

这是我目前的PHP代码:

 $jsonData = array();

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

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

   $jsonData[] = $staffrow;  

 }

 echo json_encode($jsonData); 

非常感谢任何帮助!谢谢!

2 个答案:

答案 0 :(得分:1)

尝试替换

$jsonData[] = $staffrow;

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

$jsonData[] = $object;

我在浏览器中输入此内容,因此无法测试,但您明白了(如果您不明白,请在评论中提问:)

答案 1 :(得分:0)

如果必须使用mysql_函数,则无需手动构造对象或数组,只需将结果集作为数组使用即可。

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

但我认真建议您至少升级到使用mysqli扩展程序。你不必真正调整你的代码。

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