如何从阵列中获取不均匀的键?

时间:2011-11-03 13:25:37

标签: php

我必须创建一个复制数组(我传递给函数)的函数,只有不均匀的键。例如:

$a = array(
  '0'   => '0',
  'one  => 'one',
  '1'   => '1',
  'two' => 'two'
)

我必须得到:

$result = array(
  'one  => 'one',
  'two' => 'two'
)

我已经创建了跟随功能,它可以工作,但也许我需要优化它(可能存在一个完成这项工作的功能)。建议?

private clean($values){
    $vv   = array();            
    $keys = array_keys($values);        

    for($i=1; $i < count($values); $i+=2) $vv[$keys[$i]] = $values[$keys[$i]];              
    return $vv;
}

由于

2 个答案:

答案 0 :(得分:2)

$even = range(0, count($array), 2);

source

<强>更新

for ($i = 0, $c = count($array); $i <= $c; $i = $i + 2) {
    $even = array_push($even, $array[$i]);
}

答案 1 :(得分:-1)

尝试

$outputArray = array();
$keyToAdd = false;
foreach( $inputArray as $key => $value ) {
    if( $keyToAdd ) {
        $outputArray[$key] = $value;
    }
    $keyToAdd = !$keyToAdd;
}