排序和合并关联数组(PHP)

3

我有两个关联数组:

[0] => Array (
    [time] => 09:00:00
    [name] => To do something 1
    )
[1] => Array (
    [time] => 09:30:00
    [name] => To do something 2
    )
[2] => Array (
    [time] => 10:00:00
    [name] => To do something 3
    )

并且

[0] => Array (
    [time] => 09:00:00
    )
[1] => Array (
    [time] => 09:15:00
    )
[2] => Array (
    [time] => 09:30:00
    )
[3] => Array (
    [time] => 09:45:00
    )
[4] => Array (
    [time] => 10:00:00
    )

需要做另一个关联数组:

  • 如果第二个数组中的 [time] 字段等于第一个数组中的 [time] 字段,则添加 [name];
  • 如果第二个数组中的 [time] 字段不等于第一个数组中的 [time] 字段,则添加空的 [name]。

应该是这样的:

[0] => Array (
    [time] => 09:00:00
    [name] => To do something 1
    )
[1] => Array (
    [time] => 09:15:00
    [name] => 
    )
[2] => Array (
    [time] => 09:30:00
    [name] => To do something 2
    )
[3] => Array (
    [time] => 09:45:00
    [name] => 
    )
[4] => Array (
    [time] => 10:00:00
    [name] => To do something 3
    )
1个回答

1

经过一些猜测,我为您使其可用。

这是您可以使用的代码:

$array3 = array();

foreach ($array2 as $key2 => $value2){
    $found = false;

    foreach ($array1 as $key1 => $value1){
        if ($array1[$key2]['time'] == $array2[$key2]['time']) {
            $array3[$key2]['time']  = $array1[$key1]['time'];
            $array3[$key2]['name'] = $array1[$key1]['name'];
            $found = true;
        }
    }
    if (!$found){
        //add
        $array3[$key2]['time']  = $array2[$key2]['time'];
        $array3[$key2]['name'] = "";

    }
}

print_r($array3);

很不幸,它不能正常工作,它只显示数组中最后一个记录 [name],而其他元素在数组中则显示为空的 [name] 键,但我理解了你的想法。谢谢。 - Vasiliy Schitov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接