2015-09-23 263 views
3

我有2个关联数组:排序和合并关联数组(PHP)

[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 
    ) 

需要做另一个关联数组:

  • 如果字段[时间]在第二个数组中等于第一个数组中的字段[时间],然后添加[name];
  • 如果第二个数组中的field [time]不等于第一个数组中的field [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

一些莫名其妙的我让他为你工作之后。

这是你可以使用代码:

$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); 
+0

遗憾的是它不工作,但只显示一个数组中的最后一条记录[名]和阵列秀等元素与空[名]键,但我理解你的想法。谢谢。 –