我想给转换数组:
$myArray = array(1, 2, 3, 4);
至:
array(4, 2, 1, 3);
仅使用数组函数 . 没有索引,没有循环 . 使用纯数组函数,没有别的 . 除此之外,我已经尝试过洗牌了 . 甚至可以做到吗?
如果逻辑是偶数元素的DESC顺序,则可以尝试以下方式 .
$myArray = array(1, 2, 3, 4); $even = $odd = []; $both = [&$even, &$odd]; array_walk($myArray, function ($item) use ($both){ $both[$item % 2][] = $item; }); rsort($even); sort($odd); $myArray = array_merge($even, $odd); print '<pre>'; print_r($myArray);
我认为以下代码会对您有所帮助 . 我已经测试了这段代码并为我工作 .
<?php $inputArray = array(1, 2, 3, 4); function oddNum($input) { return ($input & 1); } function evenNum($input) { return !($input & 1); } $odd = array_filter($inputArray, "oddNum"); $even = array_filter($inputArray, "evenNum"); asort($odd); // ascending order arsort($even); // decending order $finalArray = array_merge($even,$odd); print_r($finalArray); ?>
谢谢
2 回答
如果逻辑是偶数元素的DESC顺序,则可以尝试以下方式 .
我认为以下代码会对您有所帮助 . 我已经测试了这段代码并为我工作 .
谢谢