2016-08-05 22 views
0

Ich habe Schwierigkeiten, jedes Element in einem Array anzuhängen, das ich in PHP für mehrere OneSignal-Tags habe. Hier ist das Ergebnis meines aktuellen JSON codierte Array:PHP hängt jedes Element in einem Array an

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

gewünschte Ausgabe:

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

Hier ist mein aktueller PHP-Code:

$jsonData = array(); 

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

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

    $jsonData[] = $staffrow; 

} 

echo json_encode($jsonData); 

Jede Hilfe wird sehr geschätzt! Vielen Dank!

+3

Stop the ** veraltet und ab PHP7 entfernt ** 'mysql_ *' Funktionen. Migrieren Sie zu PDO und verwenden Sie vorbereitete, parametrisierte Abfragen. –

+0

'$ jsondata [] = Array ('Schlüssel' => $ Schlüssel, 'Relation' => $ rel, 'Wert' => $ val);' –

Antwort

1

Versuchen

$jsonData[] = $staffrow; 

mit

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

$jsonData[] = $object; 

ersetzt ich das in einem Browser tippe, so kann nicht testen, aber Sie bekommen die Idee (wenn Sie nicht auf die Idee kommen, fragen Sie in Kommentare :)

+0

Das hat perfekt funktioniert! Vielen Dank! – pixeloft

0

Wenn Sie die mysql_ Funktionen verwenden müssen, müssen Sie nicht manuell ein Objekt oder ein Array erstellen, erhalten Sie einfach das Ergebnis als ein Array und verwenden Sie das.

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

Aber ich empfehle ernsthaft mindestens Upgrade stattdessen die mysqli Erweiterung verwenden. Du wirst deinen Code nicht wirklich anpassen müssen.

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