2016-03-27 3 views
-5

Я сделал тест, и там была эта последовательность, следующим образом:Как решить эту логику?

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

И шаги последующих:

  1. Фильтр где ц> х
  2. Сортировка ц
  3. Вывод в формате Json (это возможно использование 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);' вызывает ошибку. Для теста, я думаю, что имеет смысл исключить его и включить в final '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()

Смежные вопросы