Многомерная сортировка / построение цепочек на основе переполнения стека значений

У меня есть массив ниже формата:

$data = [
'2018-04-26' => [
[
'op' => 3,
'cl' => 4
],
[
'op' => 3,
'cl' => 2
],
[
'op' => 4,
'cl' => 3
]
]
];

Я хочу сделать это как

$data['2018-04-26'] = [
[
'op' => 3,
'cl' => 4
],
[
'op' => 4,
'cl' => 3
],
[
'op' => 3,
'cl' => 2
]
];

Как я буду сортировать на основе OP, CL.

  • ОП текущего массива равен предыдущему массиву CL. или же
  • CL текущего массива равен следующему массиву OP.
  • Мы можем начать в любом месте, но давайте начнем соответственно с индекса 0-n.
  • Там нет шансов для множественного решения.
  • Если появился такой же op / cl, мы можем поместить его куда угодно.

Я пытался использовать usort () но как мне поставить логику.

function cmpare($a, $b){
//the logic
return 0;
}
usort($data['2018-04-26'], 'cmpare');

1

Решение

Это код php:

$data = [];

$data['2018-04-26'][] = [
'op' => 3,
'cl' => 4
];

$data['2018-04-26'][] = [
'op' => 4,
'cl' => 3
];

$data['2018-04-26'][] = [
'op' => 3,
'cl' => 2
];


usort($data['2018-04-26'], function($a, $b){
return ($a['op'] == $b["cl"]) ? 1 : 0;
});
-2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]