mysql — PHP добавляет каждый элемент в массив

Мне трудно добавить каждый элемент в массив, который есть в PHP, для нескольких тегов OneSignal. Вот результат моего текущего JSON-кодированного массива:

[{"value":"[email protected]"},
{"value":"[email protected]"},
{"value":"[email protected]"}]

Желаемый результат:

[{"key":"user_email","relation":"=","value":"[email protected]"},
{"key":"user_email","relation":"=","value":"[email protected]"},
{"key":"user_email","relation":"=","value":"[email protected]"}]

Вот мой текущий код PHP:

 $jsonData = array();

$allStaffInit = mysql_query("Select * from users");

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

$jsonData[] = $staffrow;

}

echo json_encode($jsonData);

Любая помощь очень ценится! Спасибо!

0

Решение

Попробуйте заменить

$jsonData[] = $staffrow;

с

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

$jsonData[] = $object;

Я набираю это в браузере, поэтому не могу проверить, но вы поняли идею (если вы не поняли идею, спросите в комментариях 🙂

1

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

Если вы должны использовать mysql_ функции, вам не нужно вручную создавать объект или массив, просто получите набор результатов в виде массива и используйте его.

while ($staffrow = mysql_fetch_assoc($allStaffInit)){
$jsonData[] = $staffRow;
}

Но я серьезно рекомендую вам хотя бы перейти на использование mysqli расширение вместо. Вам действительно не нужно много корректировать свой код.

http://php.net/manual/en/book.mysqli.php

0

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