Como escolher qual será a chave do array em PHP e não aquela padrão (0 => ... 1 => ... 2 =>... )

É o seguinte, estou fazendo um pequeno sistema onde a pessoa pode incluir num array os produtos desejados, ela clica no botão do produto “Inserir” e alguns informações são colhidas desse produto e guardadas num array, no caso, o “id_produto”, “nome_produto”, “preco_produto”, “quantidade_produto” são as informações colhidas e guardadas e nisso vai indo, a pessoa vai inserindo produtos e eles vão sendo guardados em um array. Tenho a seguinte estrutura em código:

case 'add':

        $produto = new ProdutoController();
        $retorno = $produto->selectId($_GET['id']);
        
        if (count($retorno) > 0)
        {
            foreach($retorno as $dados => $value)
            {
                $arrayProduto[$retorno[$dados]->id_produto] = array(
                                                        'id_prod' => $retorno[$dados]->id_produto, 
                                                        'nome_prod' => $retorno[$dados]->nome_produto,
                                                        'code_prod' => $retorno[$dados]->code_produto,
                                                        'preco_prod' => $retorno[$dados]->preco_produto,
                                                        'qtd_prod' => $_POST['txt_quantity']);
                
            }
            
            if(!empty($_SESSION['cart_item'])) 
            {    
                foreach ($arrayProduto as $key => $value) 
                {
                    if(array_key_exists($key, $_SESSION['cart_item'])) 
                    {    
                        ?> 
                            <script language="JavaScript" type="text/javascript"> 
                            alert ("Este produto já foi inserido!") 
                            </script>
                        <?php
                            header("Location: /view/cart/cart.php");
                    }
                    else
                    {
                        $_SESSION['cart_item'] = array_merge($_SESSION['cart_item'], $arrayProduto);
                        header("Location: /view/cart/cart.php");
                    }
                }
            }
            else
            {
                $_SESSION['cart_item'] = $arrayProduto;
                header("Location: /view/cart/cart.php");
            }
        }
        else
        {
            header("Location: /view");
        }
        break;`

´No caso, tenho a seguinte duvida:
Como faço pra eu escolher qual será a chave do array? Se eu deixar do jeito que tá, ele vai inserindo assim:

array (size=3)
  0 => 
    array (size=5)
      'id_prod' => string '1' (length=1)
      'nome_prod' => string 'GTX 1050 Gigabyte 2GB 128bits' (length=29)
      'code_prod' => string 'ab01' (length=4)
      'preco_prod' => string '599.90' (length=6)
      'qtd_prod' => string '1' (length=1)
  1 => 
    array (size=5)
      'id_prod' => string '5' (length=1)
      'nome_prod' => string 'VGA GTX 1070 Gigabyte 6GB 256bits' (length=33)
      'code_prod' => string 'ab07' (length=4)
      'preco_prod' => string '1399.90' (length=7)
      'qtd_prod' => string '1' (length=1)
  2 => 
    array (size=5)
      'id_prod' => string '2' (length=1)
      'nome_prod' => string 'VGA GTX 1050Ti EVGA 4GB 128bits' (length=31)
      'code_prod' => string 'ab04' (length=4)
      'preco_prod' => string '699.90' (length=6)
      'qtd_prod' => string '1' (length=1)

0 => COISAS COISAS
1 => COISAS COISAS
2 => COISAS COISAS

Porém eu não quero que seja estes números padrões (0, 1, 2, 3…), eu quero que seja o “id_produto” a chave do array, pra depois quando eu for excluir um produto, eu pegue o “id_prod”, compare com a chave do array e onde for igual eu dou “unset”, ou seja, estarei removendo. Preciso fazer a chave do array ser igual ao id_produto pra poder fazer o excluir, como faço?
Obrigado!

Crie um ARRAY indexado e grave na SESSION: No exemplo vou usar o ano proveniente do LOOP, mas vc pode indexar conforme o algoritmo no seu programa (o conceito é o mesmo):

$first = (int)date('Y');
$limit = $first+ 4;

for($i=$first;$i<=$limit;$i++){
 $array[$i]= [
  'id_prod' => $i, 
  'nome_prod' => '#nome_prod',
  'code_prod' => '#code_prod',
  'preco_prod' => '#preco_prod',
  'qtd_prod' => '#qtd_prod'
 ];
 }

$_SESSION['cart_item']=$array;
print_r($_SESSION['cart_item']);

A resposta de print_r($_SESSION[‘dados’]); é:

Array (
[2016] => Array
        (
            [id_prod] => 2016
            [nome_prod] => #nome_prod
            [code_prod] => #code_prod
            [preco_prod] => #preco_prod
            [qtd_prod] => #qtd_prod
        )

    [2017] => Array
        (
            [id_prod] => 2017
            [nome_prod] => #nome_prod
            [code_prod] => #code_prod
            [preco_prod] => #preco_prod
            [qtd_prod] => #qtd_prod
        )

    [2018] => Array
        (
            [id_prod] => 2018
            [nome_prod] => #nome_prod
            [code_prod] => #code_prod
            [preco_prod] => #preco_prod
            [qtd_prod] => #qtd_prod
        )

    [2019] => Array
        (
            [id_prod] => 2019
            [nome_prod] => #nome_prod
            [code_prod] => #code_prod
            [preco_prod] => #preco_prod
            [qtd_prod] => #qtd_prod
        )

    [2020] => Array
        (
            [id_prod] => 2020
            [nome_prod] => #nome_prod
            [code_prod] => #code_prod
            [preco_prod] => #preco_prod
            [qtd_prod] => #qtd_prod
        )

)