Php 这是在两种不同类型的数组之间转换的最佳方法吗?

Php 这是在两种不同类型的数组之间转换的最佳方法吗?,php,arrays,Php,Arrays,我需要像这样转换数组 array( 0=>array("key"=>"key1", "val"=>"val1"), 1=>array("key"=>"key2", "val"=>"val2"), 2=>array("key"=>"key3", "val"=>"val3"), ) array( "key1"=>"val1", "key2"=>"val2", "key3"=>"val3",

我需要像这样转换数组

array(
    0=>array("key"=>"key1", "val"=>"val1"),
    1=>array("key"=>"key2", "val"=>"val2"),
    2=>array("key"=>"key3", "val"=>"val3"),
)
array(
  "key1"=>"val1",
  "key2"=>"val2",
  "key3"=>"val3",
)
这样排列

array(
    0=>array("key"=>"key1", "val"=>"val1"),
    1=>array("key"=>"key2", "val"=>"val2"),
    2=>array("key"=>"key3", "val"=>"val3"),
)
array(
  "key1"=>"val1",
  "key2"=>"val2",
  "key3"=>"val3",
)
我确实喜欢以下内容:

foreach($oldArray as $element){
    $newArray[$element["key"]] = $element["val"];
}

这是转换这些数组的最佳方法吗?(特别是当数组很大时。)

是的,最好的方法是使用foreach,即使您的数组很大,也不需要花很多时间


你的代码现在工作了吗?否则我可以帮你。

你可以告诉php自己使用foreach,如下所示

$array = array(
        0=>array("key"=>"key1", "val"=>"val1"),
        1=>array("key"=>"key2", "val"=>"val2"),
        2=>array("key"=>"key3", "val"=>"val3"),
    );
    $result = array();
    array_walk($array, function($value) use (&$result) {
            $result[$value['key']] = $value['val'];
        }); 

    echo '<pre>';
    print_r($result);
    echo '</pre>';
$array=array(
0=>array(“key”=>“key1”,“val”=>“val1”),
1=>数组(“键”=>“键2”,“val”=>“val2”),
2=>数组(“键”=>“键3”,“val”=>“val3”),
);
$result=array();
数组_walk($array,function($value)use(&$result){
$result[$value['key']=$value['val'];
}); 
回声';
打印(结果);
回声';

使用生成器是消耗内存最少的方法。像这样的东西应该可以用,但我还没有测试过


注意:您需要PHP5.5+来完成此操作

确定答案的唯一方法是在下一分钟内对每个答案进行基准测试