Punkte und Leerzeichen in Arrayindizies und Objektnamen

Floh1111

Floh1111

Realist
Hi,

Ich bekomme in Php aus Json-Daten ein Array dessen Indizies Punkte und Leerzeichen im Namen haben. Auf die Json-Daten habe ich keinen Einfluss.
Das sieht dann z.B. so aus:

Code:
Array
(
    [NLQ] => 0.983
    [Dest._IP] => 10.18.1.1
    [Last hop IP] => 10.18.0.12
    [Cost] => 1.016
    [LQ] => 1.000
)

Da man damit nun nicht wirklich arbeiten kann, würde ich die gerne entfernen, kann aber nicht mal darauf zugreifen.
Das gleiche Problem habe ich auch bei Objekten wenn ich aus den Jason-Daten ein Objekt mache.

Wie kann ich auf Arrayindizies und Objektnamen mit Punkten und Leerzeichen im Namen zugreifen bzw. wie entferne ich die daraus?

Bye
Floh1111
 
Zuletzt bearbeitet:
PHP:
<?php
error_reporting(E_ALL);

function rename_keys(&$value, $key) {
	$value = str_replace(' ', '', $value);
	$value = str_replace('.', '', $value);
}

$array = array(
    'NLQ' => 0.983,
    'Dest._IP' => '10.18.1.1',
    'Last hop IP' => '10.18.0.12',
    'Cost' => 1.016,
    'LQ' => 1.000
    );

print_r($array);

$keys = array_keys($array);
$values = array_values($array);

array_walk($keys, 'rename_keys');

$array = array_combine($keys, $values);

print_r($array);

?>

So?
 
Zuletzt bearbeitet:
Danke damit klappt es jetzt wunderbar.

Ich hoffe ein spätes Danke ist besser als gar keines. Ich hatte das bei uns als Bugreport abgelegt und erstmal vergessen. Sry dafür und nochmal danke für das schöne Codebeispiel!

Bye
Floh1111
 
Passt schon. Mit array_walk() kann man halt leider nicht auf durch die Manipulation eventuell doppelt auftretetende Key-Werte reagieren, aber es sollte schneller sein, als eine while-Schleife, die das extra prüfen könnte.


cu
 

Ähnliche Themen

Server-Monitoring mit RRDTool

Zurück
Oben