我需要像这样转换数组
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"];
}
这是转换这些数组的最佳方法吗? (特别是当数组很大时。)
最佳答案
消耗内存最少的方法是使用生成器。像这样的东西应该可以工作,但我还没有测试过。
function flatten(array $inArray) {
foreach($inArray as $subArray) {
yield $subArray['key'] => $subArray['val'];
}
}
$newArray = iterator_to_array(flatten($oldArray));
注意: 为此,您需要 PHP 5.5+。
关于php - 这是在两种不同类型的数组之间进行转换的最佳方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28600708/