如何使用php函数将数组转换为更简单的形式

Let*_*see 0 php arrays

目前我有这样的数组

$myAllProducts= array(
           0=> array(
               'productName' => "Classmate",
               'productId' => 2
           ),
            1=>array(
                'productName' => "tata",
               'productId' => 3
            ),
            2=>array(
                'productName' => "abcd",
               'productId' => 4
            ),
            1=>array(
                'productName' => "pen",
               'productId' => 7
            ),
        )
Run Code Online (Sandbox Code Playgroud)

我想将它转换为类似的数组

array('Classmate'=>2,
'tata'=>3,
'abcd'=>4,
'pen'=>7)
Run Code Online (Sandbox Code Playgroud)

我是这样做的

$productList=array();
foreach($myAllProducts as $record)
            {
                $productsList[$record['productName']]=$record['productId'];
            }
Run Code Online (Sandbox Code Playgroud)

问题: - 尽管我使用我的循环成功获得了所需的结果,但我想知道是否可以使用任何内置函数或以更好的方式完成它?

Mar*_*ker 5

如果您使用PHP> = 5.5,那么您可以使用新的array_column()函数

$productList = array_combine(
    array_column(
        $myAllProducts,
        'productName'
    ),
    array_column(
        $myAllProducts,
        'productId'
    )
);
Run Code Online (Sandbox Code Playgroud)

或(甚至更简单)

$productList = array_column(
    $myAllProducts, 
    'productId', 
    'productName'
);
Run Code Online (Sandbox Code Playgroud)