2017-01-20 4 views
-2

мне нужно некоторое помогает сравнить некоторые массивы с PHP, в основном у меня есть два массива (миссия и сотрудники):Сравнение двух массивов с PHP

Массив миссия:

Array(
[0] => Array (
    [days] => Monday 
    [hours] => 1,0,0,0,0,0 
) 
[1] => Array 
    (
     [days] => Tuesday 
     [hours] => 1,1,0,0,0,1 
    ) 
) 

массив сотрудник:

Array(
[0] => Array (
    [days] => Monday 
    [hours] => 1,0,0,0,0,0 
) 
[1] => Array 
    (
     [days] => Tuesday 
     [hours] => 1,1,0,0,0,1 
    ) 
) 
[1] => Array 
    (
     [days] => Wednesday 
     [hours] => 1,1,0,0,0,1 
    ) 
) 

Цель состоит в том, чтобы сравнить, имеется ли сотрудник для миссии, это означает, что сотрудник доступен (выше случая) Понедельник и Вторник с i занятые часы для работы (1 и 0 представляют часы и положение каждого элемента очень важно).

Во-первых сотрудник не доступен, если количество дней миссии превосходит день сотрудника:

foreach ($mission as $m) { 
    # code... 
    $m_days[] = $m['days']; 
    foreach ($employee as $e) { 
     $e_days[] = $e['days']; 
    } 
    $i++; 
} 
/// First condition if m_days > e_days so valid 
$valid = (sizeof($m_days) > sizeof($e_days)) ? true : false; 

После того, что я понятия не имею, чтобы сравнить, если работник по крайней мере, для часов миссии, если миссия понедельник с часами: 1,1,0,0,0,1, а работник бесплатно на понедельник с часами: 1,1,1,0,0,1 он может принять участие в миссии, но если он доступен в понедельник с часами : 1,0,0,0,0,1 он не может выполнить эту миссию.

С array_diff он не работает, как показано here

Не могли бы вы мне помочь, пожалуйста? Спасибо.

ответ

0

Попробуйте использовать array_diff

Пример array_diff()

<?php 
$array1 = array("a" => "car", "bike", "skateboard", "bike"); 
$array2 = array("b" => "car", "boat", "bike"); 
$result = array_diff($array1, $array2); 

print_r($result); 
?> 

Множественные вхождения в $ array1 трактуются одинаково. Этот вывод будет:

Array 
(
    [1] => skateboard 
) 
+0

Здравствуйте, спасибо за ответ, но я думаю, что area_diff будет делать эту работу, основываясь на вашем сценарии мой вывод массивов: Пожалуйста, см: http://sandbox.onlinephpfunctions.com/code/ 3bd017dc429a431ab84b5b701fcd7d8dc3a947d8
Примечание: Массив для преобразования строки в [...] [...] на линии

Примечание: Массив для преобразования строки в [...] [...] on line
Array ( ) – Rahajason

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