排序后重写数组键

时间:2017-11-08 12:10:34

标签: php arrays sorting

$arr1 = [1, 2, 3, 8];
$arr2 = [1, 2, 4, 9, 10];
$arr3 = [1, 2, 5, 11, 12];
$arrs = [$arr1, $arr2, $arr3];
arsort($arrs);

我已将$arrs排序为将其更改为$arr3, $arr2, $arr1,我的问题是它保持Array Key原样,我想按新订单重写这些键,所以而不是

[2]$arr3 [1]$arr2 [0]$arr1

它变成了

[0]$arr3 [1]$arr2 [2]$arr1

我想到explode()然后implode()再次使用数组但是它没有工作,因为它是MDArray之后的$arrs = implode(explode($arrs)); arsort() [write][make]之后@ECHO OFF set IPADDRESS=1.2.3.4 set INTERVAL=5 telnet %IPADDRESS% 23 if errorlevel 1 GOTO LOG :LOG ECHO %DATE% %TIME% %IPADDRESS% Could Not Be Reached >> failurelog.txt GOTO MAIL :MAIL blat -install smtpserver blat failurelog.txt -to email -subject "%IPADDRESS% Is Down" timeout %INTERVAL% exit 1}}。

重新public static function boot() { parent::boot(); self::created(function($model){ // dd($model); $speakers = $model->speakers()->get(); // dd($speakers); // What I want to do here is: create poll options relation from speakers as follows // $poll->poll_options()->create([ // 'option' => $speaker->name, // ]); } } 数组键的最佳和最短方法是什么?

3 个答案:

答案 0 :(得分:1)

如果您不需要保留密钥

,则只需rsort
$arr1 = [1, 2, 3, 8];
$arr2 = [1, 2, 4, 9, 10];
$arr3 = [1, 2, 5, 11, 12];
$arrs = [$arr1, $arr2, $arr3];
rsort($arrs);
print_r($arrs);

DEMO

答案 1 :(得分:1)

只需使用array_values;

即可
$arr1 = [1, 2, 3, 8];
$arr2 = [1, 2, 4, 9, 10];
$arr3 = [1, 2, 5, 11, 12];
$arrs = [$arr1, $arr2, $arr3];
arsort($arrs);

$arrs  = array_values($arrs);

这将根据订单重置密钥。

答案 2 :(得分:0)

我认为您需要使用rsort()而不是arsort(),因为后者将在排序时保留索引,而第一个将重新排序值而不管键。