2017-05-31 4 views
1

Ich bin mit PHP & JSON, ich braucheWie Schlüssel zu json/php-Arrays hinzufügen

$array1 = array('id','name1','name2','name3','name4'); 

ich zu viele Daten von SQL-Abfrage an jedem json Array einen Schlüssel hinzufügen:

$array2 = [["1","1","12","34","text1"],["2","1","56","78","text2"]] // json array 

ich einen Schlüssel zu jedem json Array hinzufügen müssen, wie:

[{"id":"1","name1":"1","name2":"1","name3":"1","name4":"test1"},{"id":"2","name1":"2","name2":"2","name3":"2","name4":"test2"}] 
+3

Verwenden Sie 'array_combine' –

Antwort

0

Sie shou ld verwenden, um die Definition von Array(), das ist:

array(
    key => value, 
    key2 => value2, 
    key3 => value3, 
    ... 
    ) 

Sie haben Ihre Daten in jedem Element von array2, können Sie es laufen kann, und erstellen Sie ein neues Array für jedes Element mit dem Konstruktor, die ich geschrieben habe. So wird ein Beispiel sein:

array('id'-->array2[i][j],'name1'=>array[i][j+1],...) 
+0

das große, danke !!! –

1

diesen Versuchen

Die array_combine() Funktion durch die Verwendung der Elemente eines Arrays erzeugt von einem "Schlüssel" Array und einer "Werte" Array.

<?php 
$array1 = array('id','name1','name2','name3','name4'); 

$array2 = [["1","1","12","34","text1"],["2","1","56","78","text2"]]; 
$result = array(); 
//echo "<pre>"; 
foreach ($array2 as $value) { 
    $result[] = array_combine($array1,$value); 
} 
//print_r($result); 
echo json_encode($result); 
?> 

HINWEIS: Hier Array-Elemente von $ array1 und Array-Elemente von $ Wert muss gleich sein ansonsten wird FALSE zurückgegeben.

0

Sie können array_combine() ein Array aus zwei anderen über einen Link für Schlüssel und die andere für Werte zu schaffen (Hinweis beide die gleiche Länge haben müssen!)

$array1 = array('id','name1','name2','name3','name4'); 
$array2 = [["1","1","12","34","text1"],["2","1","56","78","text2"]]; 

foreach ($array2 as &$set) { 
    $set = array_combine($array1, $set); 
} 
unset($set); 

echo json_encode($array2); 

Hier stellen wir jede innere Array gehen in Die foreach durch Referenz (& in &$set), so dass wir es direkt ändern können, ohne ein drittes Ergebnis-Array zu erstellen, wir setzen es auch nach der Schleife auf.

Verwandte Themen