Php 如何使用foreach循环将现有数组的键更改为唯一值?

Php 如何使用foreach循环将现有数组的键更改为唯一值?,php,arrays,Php,Arrays,因此,我试图将两个独立API的提要合并为一个,但首先我需要确保提要包含相同的键,以便将两者合并在一起。在for-each循环中,我存储了我希望为每个数组保留的值,但是,我希望每个值都有一个唯一的键,而不是经典的[0]、[1]、[2]等编号系统。如何让$value3为其持有的每个值都有一个唯一的字符串键 $googleArray = array(); foreach ($myEvents as $key => $value) { foreach ($value as $key2 =

因此,我试图将两个独立API的提要合并为一个,但首先我需要确保提要包含相同的键,以便将两者合并在一起。在for-each循环中,我存储了我希望为每个数组保留的值,但是,我希望每个值都有一个唯一的键,而不是经典的[0]、[1]、[2]等编号系统。如何让$value3为其持有的每个值都有一个唯一的字符串键

$googleArray = array();

foreach ($myEvents as $key => $value) {
    foreach ($value as $key2 => $value2) {
        // Remove unnecessary keys from google API arrays
        unset($value2[method], $value2[kind], $value2[status], $value2[htmlLink], $value2[created], $value2[updated], $value2[colorId], $value2[creator],$value2[organizer],$value2[iCalUID],$value2[sequence],$value2[reminders], $value2[etag],$value2[id],$value2[minutes]);

        //Make new keys for googleArray in order to store each list to its designated event

        $googleArray[$key2] = $value2;  

        // foreach ($value2 as $key3[summary] => $value3) {
            // Store desired values in new array
            // $googleArray[] = $value3;
        // }
    }
}
基本上,我只是想

$key2["summary"] = $key2["DESC1"];

summary key变成key DESC1

如果我正确理解了这个问题,那么根据提供的信息进行开发有点困难,我认为您只需要声明一个数组,将原始$key2值映射到您希望它在$googleArray中具有的新名称,然后在该映射中进行查找,以在插入时获得所需的键名。e、 g

$mapping = ['DESC1' => 'summary', 'DESC2' => 'foo'];
foreach(...) {
  foreach(...) {
    ...

    $googleArray[$mapping[$key2]] = $value2;
  }
}

与您的问题无关,您需要在脚本顶部或开发期间设置error_reportingE_ALL。当您这样做时,您将看到,例如$value2[kind]抛出一个错误,因为您试图在不存在具有这些名称的常量的情况下使用常量种类。PHP为您纠正了这一点,但它严重影响了应用程序的性能。将错误报告级别增加到E_ALL可以让您看到所有错误并更正代码,方法是使用$value2['kind']
$googleArray = array();

foreach($myEvents as $key=>$value){

    if ( in_array($value['googleArray'], $googleArray) ) {

        continue;
    }

    $googleArray[] = $value['googleArray'];

    echo $value['googleArray'];

}