我正在使用返回 JSON 数据的 Web 服务,当我使用 PHP 的 json_decode 解码时函数,给我一个如下所示的数组:
Array
(
[0] => eBook
[1] => 27
[2] => Trade Paperback
[3] => 24
[4] => Hardcover
[5] => 4
)
是否有一个 PHP 函数可以接受这个数组并将其组合成一个关联数组,其中每个其他元素都是一个键,后面的元素是它的值?我想提出的是以下内容:
Array
(
[eBook] => 27
[Trade Paperback] => 24
[Hardcover] => 4
)
据我所知,没有内置函数可以执行此操作,但您可以使用如下函数:
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 循环,而不是单独的循环来提取偶数和奇数值。