JSON array bearbeiten

03/18/2016 10:02 Lukbec#1
Heey,

ich würde gerne ein array, was eine website ausgibt einmal kopieren und anpassen :)
Nur weiß ich nicht genau wie ich an die Werte komme... bzw. wie ich diese ändere und einen Wert hinzufüge..

Code:
<?php
$_url = "https://bitpay.com/rates";

$json = implode('', file($_url));
$array = json_decode($json, true);

//echo '<pre>';
//var_dump($array);
	
foreach($array as $temp){
echo $temp[1]['rate'];
}
?>
Der Wert 'rate' aus jedem array muss geändert werden und am anfang bzw. ende des arrays, muss noch ein eintrag hinzukommen. Kann mir jemand dabei helfen?
03/18/2016 15:11 Menan#2
Was möchtest du dem Array denn hinzufügen?
Und welchen Teil möchtest du ändern?

Etwas präzisere Angaben wären hilfreich.
03/18/2016 15:33 Der-Eddy#3
Durch
Code:
json_decode()
wandelst du das JSON in ein Array um
Arrays kannst du in PHP ganz einfach bearbeiten oder Elemente hinzufügen
Code:
$jsonarray["response"]["Erster JSON Schlüssel"] = "Sowieso";
$jsonarray["Noch nicht vorhandener Schlüssel"] = "Neuer Schlüssel der nicht im JSON dabei war";
=> [Only registered and activated users can see links. Click Here To Register...]
03/18/2016 15:36 Menan#4
Und an ein vorhandenes Array ein neues Array am Ende hinzuzufügen machst du mit:

PHP Code:
$jsonarray['node']['second'][] = "neuer Wert wird hinter letztes Element eingefügt"
03/18/2016 18:56 Lukbec#5
Okay, danke :)

Mein Code habe ich ein bisschen verbessert ...
PHP Code:
<?php
$_url 
"https://bitpay.com/rates";

//$json = file_get_contents($_url);
//$array = json_decode($json);
//
//echo '<pre>';
//var_dump($array);

$data json_decode(file_get_contents($_url));
//print "<pre>";
//print_r($data);

$demwert 0.00001143;

foreach(
$data->data AS $entry) {
    
$price $entry->rate*$demwert;

    echo 
$entry->code.' - '.$price;
    echo 
"<br/>";
}
?>
Ich lade also jeden einzelnen Wert aus $entry->rate und rechne diesen um.
Der neue Wert ($price) soll dann bei $entry->rate eingetragen werden, am besten in der gleichen foreach Schleife.
Ist leider nicht so leicht wie ich dachte..

Also die Ausgabe soll dann wie bei der angegeben url sein...
03/18/2016 19:24 Menan#6
Bau dir am besten nen neues Array zusammen und gib das aus.

Hier:

PHP Code:
 <?php
$_url 
"https://bitpay.com/rates";

$data json_decode(file_get_contents($_url));


$demwert 0.00001143;
$emparray = array();

foreach(
$data->data AS $entry) {
    
$emparray['data'][] = array(
        
'code' => $entry->code,
        
'rate' => $entry->rate*$demwert
    
);
}

echo 
json_encode($emparray);
?>
03/18/2016 19:44 Lukbec#7
Perfekt, danke!
03/28/2016 03:54 turk55#8
Quote:
Originally Posted by Menan View Post
Bau dir am besten nen neues Array zusammen und gib das aus.

Hier:

PHP Code:
 <?php
$_url 
"https://bitpay.com/rates";

$data json_decode(file_get_contents($_url));


$demwert 0.00001143;
$emparray = array();

foreach(
$data->data AS $entry) {
    
$emparray['data'][] = array(
        
'code' => $entry->code,
        
'rate' => $entry->rate*$demwert
    
);
}

echo 
json_encode($emparray);
?>
If you are going to output JSON you should also send the corresponding header:

PHP Code:
header("Content-Type: application/json");
echo 
json_encode($emparray);