我在下面给出了一个数组
$array = array(50,51,52,53,54,55,56,57,58,59);
我正在尝试打印数组的值,而偶数将保持相同的顺序,并且对奇数进行排序,即59,57,55,53,51
输出应该像
50,59,52,57,54,55,56,53,58,51
我已经在两个diff变量中分离了偶数和奇数。我应该如何进一步进行?
这是我的代码
$even= "";
$odd= "";
for($i=50;$i<=59;$i++)
{
if($i%2==0)
{
$even.=$i.",";
}else $odd.=$i.",";
}
echo $even.$odd;
不用将偶数和奇数压入一个字符串,而是将它们分别压入一个数组中,对具有相反几率的数组进行反向排序,然后遍历其中一个(最好是通过偶数数组),然后将偶数和奇数添加到一个新的数组中。大批。
这是我的方法:
$array = array(50,51,52,53,54,55,56,57,58,59);
$odds = array();
$even = array();
foreach($array as $val) {
if($val % 2 == 0) {
$even[] = $val;
} else {
$odds[] = $val;
}
}
sort($even);
rsort($odds);
$array = array();
foreach($even as $key => $val) {
$array[] = $val;
if(isset($odds[$key])) {
$array[] = $odds[$key];
}
}
但是,如果您的奇数个数小于偶数,则应保持谨慎,因为循环将在所有奇数相加之前完成。您可以在填充新数组之前或之后进行检查。如果在填充新数组后进行检查,则可以使用array_diff
和array_merge
将丢失的赔率添加到新数组中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句