PHP вставить элемент между элементами в массиве

У меня есть код 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;
}

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);
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]