php排序数组像奇数/偶数/奇数/偶数

时间:2015-05-18 13:28:15

标签: php arrays sorting

我可以对数组奇数/偶数/奇数/偶数进行排序吗?是否可以通过usort函数进行排序? :

第一个数组

$array = ['a'=>'0','b'=>0,'c'=>0,'d'=1,'e'=>1,'f'=>1];

第二个数组

$result = ['d'=>1,'a'=>0,'e'=>1,'b'=>0,'f'=>1,'c'=>0];

谢谢。

1 个答案:

答案 0 :(得分:1)

这是我的看法..

// example array
$array = array('d'=>1,'a'=>0,'b'=>0,'c'=>0,'e'=>1,'f'=>1,'g'=>1,'h'=>1);

$temp=array();
$result=array();
foreach ($array as $k=>$v) {
  if ($v%2==0)
    $temp[0][$k]=$v;
  else
    $temp[1][$k]=$v;
}
$c = max(count($temp[0]),count($temp[1]));
for ($i=0;$i<$c;$i++) {
  $ok = key($temp[1]);
  if ($ok) {
    $result+=array($ok=>$temp[1][$ok]);
    next($temp[1]);
    $ok=false;
  }
  $ek = key($temp[0]);
  if ($ek) {
    $ek = key($temp[0]);
    $result+=array($ek=>$temp[0][$ek]);
    next($temp[0]);
    $ek=false;
  }
}

print_r($result);
// Array ( [d] => 1 [a] => 0 [e] => 1 [b] => 0 [f] => 1 [c] => 0 [g] => 1 [h] => 1 )
相关问题