コードをコピーします コードは次のとおりです:
$arr1 = 配列(1,9,5);
$arr2 = 配列(6,2,4);
array_multisort($arr1,$arr2); ; // 取得した次数は 1,5,9
print_r($arr2) // 取得した次数は 6,4,2
コードをコピーします コードは次のとおりです:
$arr1 = 配列(1,9,5);
$arr2 = 配列(6,2,4);
$arr3 = 配列(3,7,8); $arr1,$arr2,$arr3);
結果を見ると、最初から最後まで1が6と3に対応しており、他の項目も同様です。この対応は、マニュアルでは「ソート中に元のキー名の関連付けを保持する」と呼ばれるものです。
コードをコピーします コードは次のとおりです:
$arr1 = 配列(1,9,5,9);$arr2 = 配列(6,2,4,1);
$arr3 = 配列(3,7,8,0); ;
array_multisort($arr1,$arr2,$arr3);
ここでの $arr3 の結果は (3,8,0,7) であると想像できます。
2. 次にarray_multisortのパラメータについて説明します。
/**
* に基づく指定された键对数组排序
*
* 使用法:
* @code php
* $rows = array(
* array('id' => 1 , '値' => '1-1', '親' => 1),
* array('id' => 2, '値' => '2-1', '親' => 1),
* array('id' => 3, 'value' => '3-1', 'parent' => 1),
* array('id ' => 4, '値' => '4-1', '親' => 2),
* 配列('id' => 5, '値' => '5- 1', 'parent' => 2),
* array('id' => 6, 'value' => '6-1', 'parent' => 3),
* );
*
* $rows = Helper_Array::sortByCol($rows, 'id', SORT_DESC);
* dump($rows);
* // 出力結果は次のとおりです。
* // array(
* // array('id' => 6, 'value' => '6-1', 'parent' = > 3),
* // 配列('id' => 5, '値' => '5-1', '親' => 2),
* // 配列( 'id' => 4, 'value' => '4-1', 'parent' => 2),
* // array('id' => 3, 'value' => ; '3-1', 'parent' => 1),
* // array('id' => 2, 'value' => '2-1', 'parent' => 1),
* // array('id' => 1, 'value' => '1-1', 'parent' => 1),
* // )
* @endcode
*
* @param array $array 要排序的数组
* @param string $keyname 排序的键
* @param int $dir 排序方向
*
* @return array排序後の数组
*/
static function sortByCol($array, $keyname, $dir = SORT_ASC)
{
return self::sortByMultiCols($array, array($keyname = > $ディレクトリ));
} /**
* SQL ステートメントの ORDER BY と同様に、複数の列で 2 次元配列を並べ替えます。
*
* 使用法:
* @code php
* $rows = Helper_Array:: sortByMultiCols( $rows, array(
* 'parent' => SORT_ASC,
* 'name' => SORT_DESC,
* ));
* @endcode
*
* @param array $rowset ソートする配列
* @param array $args ソートするキー
*
* @return array ソートされた配列
*/
静的関数 sortByMultiCols($rowset, $args)
{
$sortArray = array();
$sortRule = '';
foreach ($args as $sortField => $sortDir)
{
foreach ($rowset as $offset => $row)
{
$sortArray[$sortField][ $offset] = $row[$sortField];
}
$sortRule .= '$sortArray['' . $sortField 。 '']、' 。 $sortDir 。 '、';
}
if (empty($sortArray) empty($sortRule)) { return $rowset;
eval('array_multisort(' . $sortRule . '$rowset);');
$rowset を返す;
}