使用键值对中的值之一从关联数组创建数组

Create an array from an associative array using one of its value in a key value pair

我有一个名为 $data 的关联数组。这是一些相同的键值对

 Array
   (
      [0] => Array
      (
        [id] => 1
        [config_id] => 31
        [language] => "English"
      )

      [1] => Array
      (
        [id] => 2
        [config_id] => 33
        [language] => "English"
      )
      [2] => Array
      (
        id] => 3
        [config_id] => 32
        [language] => "French"
      )

   )

我想将这个数组转换为

Array
   (
      ["English"] => Array(
       [0]=> Array
        (
        [id] => 1
        [config_id] => 31
       )

       [1] => Array
       (
        [id] => 2
        [config_id] => 33
       )
      )
      ["French"] => 
      Array(
       [0]=> Array
        (
        [id] => 3
        [config_id] => 32
        )
      )
     )
   )

我需要语言作为输出数组中的键,谁能帮我解决这个问题?提前致谢。 我尝试了以下代码,但只打印了最后一个数组值

     $arry = array();
     foreach ($data as $val) {
        
        $arry[$val->language]["id"] =  $val->id;
        $arry[$val->language]["config_id"] =  $val->config_id;
     }

你就快完成了,只需要一次性创建新数组,然后使用 $arry[$val->language][] 在新的或现有的语言键下创建一个新的子数组。

另外 $data 是一个或多个数组而不是对象数组,因此项目的寻址是错误的。

$arry = array();
foreach ($data as $val) {
    $arry[$val->language][] =  ['id' => $val['id'], 'config_id' => $val['config_id']];
}