簡體   English   中英

如何在php中重組數組

[英]How to regroup arrays in php

我有這樣的PHP數組

[
['name'=>'john0', 'order' => '1'],
['name'=>'john1', 'order' => '2'],
['name'=>'john2', 'order' => '2'],
['name'=>'john3', 'order' => '3'],
['name'=>'john4', 'order' => '3'],
['name'=>'john5', 'order' => '4'],
['name'=>'john6'],
['name'=>'john7', 'order' => '5'],
]

我想要以下

  1. 按ASC順序排序
  2. 如果沒有順序,則該元素應附加到最后
  3. 如果順序相同,則應將它們按數組分組

結果應該是

['john0',['john1','john2'],['john3','john4'],'john5','john7','john6']

您可以按照以下步驟進行操作

$aResultArray = array();
$aTempWithoutorder = array();
foreach( $aArray AS $array )
{
  if( isset( $array['order'] )
     $aResultArray[$array['order']][] = $array['name'];  
  else
    $aTempWithoutorder = $array;
}
ksort($aResultArray);
$aRearrange = array();
foreach( $aResultArray AS $iOrder=>$name )
{
  $aRearrange[] = $name;
}
$aFinalArray = $aRearrange + $aTempWithoutorder;

$aFinalArray will have order

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM