将平面索引的交替键和值转换为平坦的关联阵列

问题描述 投票:0回答:5

我希望所有带有索引的值以键和所有奇数索引为go值的值。这样:

[english] => 85,
[mathematics] => 75
[science] => 71
[social] => 92

有任何好的功能可以实现这一目标吗?还是您可以帮助我处理代码?

	

简单的循环将做到这一点:

php arrays associative-array
5个回答
3
投票

注:
上面的代码假定有偶数元素。
    

像这样的东西: <?php $arr[0] = 'english'; $arr[1] = 85; $arr[2] = 'mathematics'; $arr[3] = 75; $arr[4] = 'science'; $arr[5] = 71; $arr[6] = 'social'; $arr[7] = 92; for($i=0;$i<count($arr);$i++) { if($i & 1) $odd[] = $arr[$i]; else $even[] = $arr[$i]; } $result = array_combine($even,$odd); var_dump($result); ?>


2
投票

array(4) { ["english"]=> int(85) ["mathematics"]=> int(75) ["science"]=> int(71) ["social"]=> int(92) }


使用

array_chunk
函数
sustolution

0
投票
$arr = array('english', 85, 'mathematics', 75, 'science', 71, 'social', 92 ); $result = array(); $chunks = array_chunk($arr, 2); foreach ($chunks as $value) { $result[$value[0]] = $value[1]; }


仅用于踢的功能风格(不考虑性能):
$odd = function($value) {
    return($value & 1);
};

$even = function($value) {
    return(!($value & 1));
};
$oddArr = array_filter($arr, $odd));
$evenArr = array_filter($arr, $even));    
$ans = array_combine($oddArr,$evenArr);

0
投票

如果您喜欢一种功能齐全的方法:块,转台,组合。 demo


0
投票

输出: array ( 'english' => 85, 'mathematics' => 75, 'science' => 71, 'social' => 92, )

	

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.