У меня есть код PHP, который выплевывает динамический массив JSON, как это:
{"key":"user_email","relation":"=","value":"[email protected]"},
{"key":"user_email","relation":"=","value":"[email protected]"},
{"key":"user_email","relation":"=","value":"[email protected]"}
Мне нужно настроить его, чтобы вставить элемент между каждым элементом следующим образом:
{"key":"user_email","relation":"=","value":"[email protected]"},
{"operator":"OR"},
{"key":"user_email","relation":"=","value":"[email protected]"},
{"operator":"OR"},
{"key":"user_email","relation":"=","value":"[email protected]"}
Это мой текущий код 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);
Других решений пока нет …