据我所知,没有内置函数可以做到这一点,但您可以使用如下函数:
function combineLinearArray( $arrayToSmush, $evenItemIsKey = true ) {
if ( ( count($arrayToSmush) % 2 ) !== 0 ) {
throw new Exception( "This array cannot be combined because it has an odd number of values" );
}
$evens = $odds = array();
// Separate even and odd values
for ($i = 0, $c = count($arrayToSmush); $i < $c; $i += 2) {
$evens[] = $arrayToSmush[$i];
$odds[] = $arrayToSmush[$i+1];
}
// Combine them and return
return ( $evenItemIsKey ) ? array_combine($evens, $odds) : array_combine($odds, $evens);
}
您可以使用要组合成关联数组的数组和可选标志来调用它,该标志指示是使用偶数还是奇数元素作为键。
编辑:我将代码更改为仅使用一个 for 循环,而不是使用单独的循环来提取偶数和奇数值。