2016-03-27 26 views
-5

Ich habe einen Test, und es war diese Sequenz, wie folgt:Wie löst man diese Logik?

$in = [ 
[ts->'1', data->'dado 1']; 
[ts->'2', data->'dado 2']; 
[ts->'3', data->'dado 3']; 
] 

und die Folgeschritte:

  1. Filter wo ts> x
  2. Sortieren ts
  3. Ausgabe im JSON-Format (dies wahrscheinlich mit echo json_encode ($ in))

Wie könnte ich diese Schritte lösen?

EDIT

Vielleicht wäre es eine Alternative zu lösen:

//Filter ts 
function filtrar($in) 
{ 
    $x = 1; 
    return($in['ts'] > $x); 
} 
//Sort ts 
foreach ($in as $key => $row) { 
    $ts[$key] = $row['ts']; 
} 
array_multisort($ts, SORT_ASC, $in); 
//output into Json 
echo json_encode(array_filter($in, "filtrar")); 
+0

Was ist das Format? –

+0

für den ersten Schritt dachte ich über die Verwendung von "Filter_var", aber ich bin mir nicht sicher. Gerade über den letzten Schritt, den ich glaube, mit json_encode richtig zu sein. – Atoyansk

+0

Werfen Sie einen Blick auf ['array_filter()'] (http://php.net/manual/en/function.array-filter.php), ['array_multisort()'] (http://php.net/ manual/de/function.array-multisort.php) und ['json_encode()'] (http://php.net/manual/en/function.json-encode.php) – fusion3k

Antwort

0

hat Spaß :)

$in = [ 
    ['ts' =>'1', 'data'=>'dado 1'], 
    ['ts'=>'2', 'data'=>'dado 2'], 
    ['ts'=>'3', 'data'=>'dado 3'], 
    ]; 

    $number = 2; 

    $filtered = array_filter($in , function($to_filter) use ($number) { 
     if($to_filter['ts'] >= $number) 
      return $to_filter; 
    }); 

    print_r($filtered); 
0

Haben Sie etwas versuchen? Hier ist eine Idee:

$buffer = array(); 
$in = json_decode($in); 
foreach ($in as $row) 
{ 
    if ($row['ts'] > 1) 
    { 
     $buffer[$row['ts']] = $row; 
    } 
} 

ksort($buffer); 
var_dump($buffer); 
+0

mit dieser Zeile '$ in = json_decode ($ in) bearbeitet;' verursacht einen Fehler. Für den Test finde ich das sinnvoll, schließe es aus und schließe am finalen 'echo json_encode ($ in);'. Was denken Sie? – Atoyansk

0

Ich hätte eine mögliche Lösung, nachdem Lese Links vorgeschlagen:

//Filter ts 
function filtrar($in) 
{ 
    $x = 1; 
    return($in['ts'] > $x); 
} 
//Sort ts 
foreach ($in as $key => $row) { 
    $ts[$key] = $row['ts']; 
} 
array_multisort($ts, SORT_ASC, $in); 
//output into Json 
echo json_encode(array_filter($in, "filtrar")); 

In diesen Links: array_filter() und array_multisort()

Verwandte Themen