私の知る限り、これを行う組み込み関数はありませんが、次のような関数を使用できます。
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 ループを 1 つだけ使用するようにコードを変更しました。