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

PHP insert element between elements in an array

我有 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"}

这是我当前的 PHP 生成 JSON:

的代码
$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;       
}

您可以在 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);