この記事では、PHP でキー名を変えずに 2 次元配列をソートする方法 (コード例) を紹介します。一定の参考価値があります。困っている友人が参考になれば幸いです。役に立ちました。役に立ちました。
2次元配列に指定されたキー名を並べ替えるには、まずarray_multisort関数を思い浮かべると思いますが、array_multisort関数の使い方については以前記事を書きました。例を見てみましょう:
ee1e477732f941563dde11c19100b482 array( 'age' => 22, 'name' => '鸠摩智' ), 1007 => array( 'age' => 21, 'name' => '慕容复' ), 1004 => array( 'age' => 27, 'name' => '乔帮主' ) );
= array_column(, 'age'(, SORT_ASC, ();注意深い友人は、キー名がリセットされ、キー名が 0 から始まることに気づくでしょう。望む結果が得られない場合、キー名を変更しないようにするにはどうすればよいでしょうか? 別の例を見てみましょう:
$data = array( => array( 'age' => 22, 'name' => '鸠摩智' ), => array( 'age' => 21, 'name' => '慕容复' ), => array( 'age' => 27, 'name' => '乔帮主' ) ); //根据字段age对数组$data进行降序排列 $data = arraySort($data, "age", "desc" ); print_r($data); /** * @desc arraySort php二维数组排序 按照指定的key 对数组进行自然排序 * @param array $arr 将要排序的数组 * @param string $keys 指定排序的key * @param string $type 排序类型 asc | desc * @return array */ function arraySort($arr, $keys, $type = 'asc') { $keysvalue = $new_array = array(); foreach ($arr as $k => $v) { $keysvalue[$k] = $v[$keys]; } if ($type == 'asc') { natsort($keysvalue); } if ($type == 'desc') { natsort($keysvalue); $keysvalue = array_reverse($keysvalue, TRUE); // 将原数组中的元素顺序翻转,如果第二个参数指定为 true,则元素的键名保持不变 } foreach ($keysvalue as $k => $v) { $new_array[$k] = $arr[$k]; } return $new_array; }ここでは、arraySort 関数を単純化することもでき、処理結果は同じです:
/** * @desc arraySort php二维数组排序 按照指定的key 对数组进行自然排序 * @param array $arr 将要排序的数组 * @param string $keys 指定排序的key * @param string $type 排序类型 asc | desc * @return array */ function arraySort($arr, $keys, $type = 'asc') { $keysvalue = $new_array = array(); foreach ($arr as $k => $v) { $keysvalue[$k] = $v[$keys]; } $type == 'asc' ? asort($keysvalue) : arsort($keysvalue); foreach ($keysvalue as $k => $v) { $new_array[$k] = $arr[$k]; } return $new_array; }上記の結果からわかること:
ご覧のとおり、ここでは主に PHP のいくつかのコアソート関数を使用します。
に関連付けられています。 注: 自然な並べ替えアルゴリズムでは、数値 2 は数値 10 より小さくなります。コンピューターの並べ替えアルゴリズムでは、「10」の最初の数字が 2 より小さいため、10 は 2 より小さくなります。
以上がPHPでキー名を変えずに2次元配列をソートする方法の紹介(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。