array_uintersect неожиданный результат - PullRequest
0 голосов
/ 12 октября 2018

Меня интересует пересечение многомерных массивов.Я попробовал код ниже, но я получил плохой результат.Мне нужен новый массив ( NewDochazka ) с данными пересечения дат 2018-09- (22/25/28).Вероятно, это будет простая проблема, которую я не вижу.Спасибо

Мой код:

// Multidimensional Arrays   
    $dochazka = array(
        "dochazka-0001" => array('2018-09-22', '06:30:05'),
        "dochazka-0002" => array('2018-09-22', '09:09:41'),
        "dochazka-0003" => array('2018-09-24', '04:30:05'),
        "dochazka-0004" => array('2018-09-25', '07:09:21'),
        "dochazka-0005" => array('2018-09-26', '21:09:09'),
        "dochazka-0006" => array('2018-09-26', '21:09:52'),
        "dochazka-0007" => array('2018-09-28', '10:09:31'),
        "dochazka-0008" => array('2018-09-28', '10:33:12'),
        "dochazka-0009" => array('2018-09-28', '10:35:29'),
    );

    $cinnosti = array(
        "cinnost-0001" => array('Project 2', '2018-09-22', '07:23:56'),
        "cinnost-0002" => array('Project 1', '2018-09-22', '07:26:56'),
        "cinnost-0003" => array('Project 1', '2018-09-25', '13:09:53'),
        "cinnost-0004" => array('Project 1', '2018-09-28', '10:35:29'),
    );

// Intersect of dates
    $NewDochazka = array_uintersect($dochazka, $cinnosti, 'prunikHodnot');
        function prunikHodnot($a, $b){
            return strcmp($a[0], $b[1]);  
        }

Результат

$NewDochazka = array(
    "dochazka-0008" => array('2018-09-28', '10:33:12'),
);

Ожидается

$NewDochazka = array(
    "dochazka-0001" => array('2018-09-22', '06:30:05'),
    "dochazka-0002" => array('2018-09-22', '09:09:41'),
    "dochazka-0004" => array('2018-09-25', '07:09:21'),
    "dochazka-0007" => array('2018-09-28', '10:09:31'),
    "dochazka-0008" => array('2018-09-28', '10:33:12'),
    "dochazka-0009" => array('2018-09-28', '10:35:29'),
);
...