Array Problem

Hallo,

ich habe jetzt ein Problem, irgendwie gibt er mir bei $id, genau das aus, was bei $string2 auch zu sehen ist und bei $km nur eine 0. Warum und wo ist der Fehler?

[PHP]
$string2 = ‚„28,4“ => „1“, „1,6“ => „2“, „24,2“ => „3“, „28,0“ => „4“‘;
$arr = array( $string2 );
foreach( $arr as $km => $id )
{
echo $km.„

“; echo $id;
}[/PHP]

Das Problem ist, dass du dem Array einen String übergibst. Dann hast du ein numerisches Array mit einem Eintrag.
Was du machen willst ist.
[php]
$arr = array(„28,4“ => „1“, „1,6“ => „2“); // usw.
[/php]
So funktioniert auch deine foreach Schleife dann.
Um die Werte zu sortieren benutzt man am besten PHP: usort - Manual
Schau dir da das Beispiel mit den Früchten an :slight_smile:

Hallo, danke. Das mit dem Sortieren habe ich hinbekommen, nur das Problem ist, dass ich es so machen muss, mit diesem $string, da das von der Datenbank ausgelesen wird. Hab den $string für dieses Beispiel selber mal einfach hingeschrieben, wie es aussehen würde, wenn man echo $string; macht (Da es von der Datenbank kommt. Und genau so $string2 = ‚„28,4“ => „1“, „1,6“ => „2“, „24,2“ => „3“, „28,0“ => „4“‘; aussieht.

Hab es jetzt einfach mit $array[$id] = $key; gemacht

Kannst dir das sonst zurechtparsen.

[php]<?php

function stringToArray($s)
{
$parts = preg_split(‚/(\s*„[^“]"\s=>\s*„[^“]"\s(?:,|$))/‘, $s, -1,
PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);

array_walk($parts, function (&$e) { $e = trim(trim($e), ','); });

$data = array();

foreach ($parts as $part) {
    $splitted = explode('=>', $part);
    $key = preg_replace('/[\s"]+(.*?)[\s"]+/', '$1', $splitted[0]);
    $value = preg_replace('/[\s"]+(.*?)[\s"]+/', '$1', $splitted[1]);

    $data[$key] = $value;
}

return $data;

}

$string2 = ‚„28,4“ => „1“, „1,6“ => „2“, „24,2“ => „3“, „28,0“ => „4“‘;

$data = stringToArray($string2);

print_r($data);[/php]

Array ( [28,4] => 1 [1,6] => 2 [24,2] => 3 [28,0] => 4 )