我有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;
}
答案 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);