PHP在数组中的元素之间插入元素

时间:2016-08-05 23:19:37

标签: php arrays json onesignal

我有PHP代码,它会像这样吐出动态JSON数组:

{"key":"user_email","relation":"=","value":"email@gmail.com"},
{"key":"user_email","relation":"=","value":"email@gmail.com"},
{"key":"user_email","relation":"=","value":"email@gmail.com"}

我需要调整它以在每个元素之间插入一个元素,如下所示:

{"key":"user_email","relation":"=","value":"email@gmail.com"},
{"operator":"OR"},
{"key":"user_email","relation":"=","value":"email@gmail.com"},
{"operator":"OR"},
{"key":"user_email","relation":"=","value":"email@gmail.com"}

这是我当前生成JSON的PHP代码:

$jsonData = array();

$allStaffInit = mysql_query("SELECT * FROM users");

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

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

    $jsonData[] = $object;       
}

1 个答案:

答案 0 :(得分:2)

您可以在while循环之前创建分隔符对象。

$or = (object) ['operator' => 'OR'];

然后在添加$object后将其添加到循环中的数组中。

while ($staffrow = mysql_fetch_object($allStaffInit)){
    $object = new stdClass();
    $object->key = "user_email";
    $object->relation = "=";
    $object->value = $staffrow->value;
    $jsonData[] = $object;
    $jsonData[] = $or;      // << here
}

json_encode之前,在最后一项之后弹出额外的一个。

array_pop($jsonData);