PHP 追加数组中的每个元素

PHP append each element in an array

我很难将 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); 

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

尝试替换

$jsonData[] = $staffrow;

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

$jsonData[] = $object;

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

如果一定要使用mysql_函数,不需要手动构造对象或数组,直接将结果集作为数组使用即可。

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

但我强烈建议您至少升级到使用 mysqli 扩展程序。您实际上不必对代码进行太多调整。

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