【问题标题】:Compare two arrays with php [duplicate]用php比较两个数组[重复]
【发布时间】:2017-01-20 16:31:19
【问题描述】:

我需要一些帮助来比较一些数组与 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
    )
)

目的是比较员工是否有空执行任务,这意味着员工是否有空(上例)周一周二包含工作时间(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 演示的那样工作

你能帮帮我吗? 谢谢。

【问题讨论】:

    标签: php arrays multidimensional-array


    【解决方案1】:

    尝试使用 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
    )
    

    【讨论】:

    • 您好,感谢您的回复,但我认为 area_diff 将完成这项工作,根据您的脚本我的数组输出:请参阅:sandbox.onlinephpfunctions.com/code/…
      通知 : [...][...] 5

      注意[...][...]中数组到字符串的转换:第 5[...][...] 中的数组到字符串的转换
      Array ( )
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    • 1970-01-01
    相关资源
    最近更新 更多