2016-03-27 45 views
-5

私はテストを行い、このシーケンスは次のようにありました:このロジックを解決するには?

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

とフォローの手順:JSON形式で

  1. フィルターTS> X
  2. ソート
  3. TS出力を(これは適切にecho json_encode($ in)を使用しています)

これらの手順をどのように解決できますか?

EDIT

多分解決するための代替のようになります。

//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

その形式は何ですか? –

+0

最初のステップでは、 "filter_var"の使用について考えましたが、それについてはわかりません。 json_encodeの使用について正しいと思う最後のステップについてです。 – Atoyansk

+0

['array_filter()'](http://php.net/manual/en/function.array-filter.php)、['array_multisort()'](http://php.net/ manual/en/function.array-multisort.php)と['json_encode()'](http://php.net/manual/en/function.json-encode.php) – fusion3k

答えて

0

は楽しみを持っている:)

$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

あなたが何かをしようとしましたか?ここでの考え方は次のとおりです。

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

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

'$ in = json_decode($ in);'という行はエラーを引き起こします。テストのために、私はそれを除外し、最終的な 'echo json_encode($ in);'に含めることが理にかなっていると思う。どう思いますか? – Atoyansk

0

読み取りリンクが示唆された後、私は、可能な解決策を持って:このリンクで

//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")); 

を:array_filter()array_multisort()

関連する問題