Многомерная сортировка / построение цепочек на основе значения PHP - PullRequest
0 голосов
/ 24 октября 2018

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

$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.
  • Мы можем начать в любом месте, но давайте начнем соответственно index 0-n.
  • Нет шансов для несколькихрешение.
  • Если появился такой же op / cl, мы можем поместить его куда угодно.

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

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

1 Ответ

0 голосов
/ 24 октября 2018

Это 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;
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...