php对二维数组按指定键值key排序示例代码_php技巧
function array_sort($array, $key){
if(is_array($array)){
$key_array = null;
$new_array = null;
for( $i = 0; $i $key_array[$array[$i][$key]] = $i;
}
ksort($key_array);
$j = 0;
foreach($key_array as $k => $v){
$new_array[$j] = $array[$v];
$j++;
}
unset($key_array);
return $new_array;
}else{
return $array;
}
}
PHP二维数组按键值排序
PHP 中 array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。关联键名保持不变,但数字键名会被重新索引。输入数组被当成一个表的列并以行来排序,第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话就按照下一个输入数组中相应值的大小来排序,依此类推。
但是如果需要排序的数组是一个二维数组,需要按照数组的键值排序,如下面这个二维数组,需要按照sort键名来排序,那么array_multisort() 就无法直接实现了:
$data[5] = array('volume' => 67, 'edition' => 2); $data[4] = array('volume' => 86, 'edition' => 1); $data[2] = array('volume' => 85, 'edition' => 6); $data[3] = array('volume' => 98, 'edition' => 2); $data[1] = array('volume' => 86, 'edition' => 6); $data[6] = array('volume' => 67, 'edition' => 7); // 准备要排序的数组 foreach ($data as $k => $v) { $edition[] = $v['edition']; } array_multisort($edition, SORT_ASC, $data); print_r($data);
将输出:
Array ( [0] => Array ( [volume] => 86 [edition] => 1 ) [1] => Array ( [volume] => 67 [edition] => 2 ) [2] => Array ( [volume] => 98 [edition] => 2 ) [3] => Array ( [volume] => 85 [edition] => 6 ) [4] => Array ( [volume] => 86 [edition] => 6 ) [5] => Array ( [volume] => 67 [edition] => 7 ) )
为了不破坏原有的key,写了一个排序函数,仅支持二维数组。
/** * 根据数组中的某个键值大小进行排序,仅支持二维数组 * * @param array $array 排序数组 * @param string $key 键值 * @param bool $asc 默认正序 * @return array 排序后数组 */ function arraySortByKey(array $array, $key, $asc = true) { $result = array(); // 整理出准备排序的数组 foreach ( $array as $k => &$v ) { $values[$k] = isset($v[$key]) ? $v[$key] : ''; } unset($v); // 对需要排序键值进行排序 $asc ? asort($values) : arsort($values); // 重新排列原有数组 foreach ( $values as $k => $v ) { $result[$k] = $array[$k]; } return $result; }

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP プログラミングにおける array_sum 関数は、配列内のすべての要素の合計を計算できる非常に実用的な関数です。ただし、2 次元配列内の要素の列の合計を計算する必要がある場合、問題が発生する可能性があります。この記事では、PHP の array_sum 関数を使用して、2 次元配列の列の要素の合計を計算する方法を紹介します。まず、2 次元配列の概念を理解する必要があります。 2 次元配列は、複数の配列を含む配列であり、テーブルとみなすことができます。各配列はテーブルを表します

PHP 配列を 2 次元から 1 次元配列に変換する方法: 1. ループ トラバーサルを使用して 2 次元配列を走査し、各要素を 1 次元配列に追加します; 2. 「array_merge」関数を使用して複数の要素をマージします配列を配列に. 二次元配列を「array_merge」関数にパラメータとして渡して一次元配列に変換; 3. 「array_reduce」関数を使用すると、配列内のすべての値を処理できますコールバック関数を介して、最終的に結果を返します。

PHP プログラミングでは、指定された列の値を取得するなど、配列を操作する必要があることがよくあります。 PHP には、2 次元配列内の指定された列の値を迅速に取得するのに役立つ、非常に便利な関数 array_column が用意されています。この記事ではarray_column関数の使い方を紹介します。 array_column 関数の基本的な使用法: array_column(array$array,mixed$column_key[

PHP で 2 次元配列を反転する方法: 1. PHP サンプル ファイルを作成する; 2. 2 次元配列を定義する; 3. 「array_reverse($a,true);」関数を使用して配列を反転する; 4. を使用する「print_r」で印刷します。 2次元配列を反転するだけです。

PHP で 2 次元配列を 1 次元配列に変換する方法 PHP 開発では、2 次元配列を 1 次元配列に変換する必要があるシナリオによく遭遇します。この記事では、このタスクを簡単に完了するための一般的な方法をいくつか紹介します。方法 1: ループ トラバーサルを使用する 最も単純で直接的な方法は、ループを使用して 2 次元配列をトラバースし、各要素を新しい 1 次元配列に追加することです。このメソッドを使用したコード例を次に示します。 function flattenArray($array){$result

PHP5.5関数の詳しい解説:array_column関数を使って2次元配列の特定の列を取り出す方法 PHP5.5版ではarray_column関数が導入され、指定した列を取り出すことができる非常に実用的な関数です。 2 次元配列からのデータの列。これは大量のデータを扱うときに便利で、必要なデータをすぐに取得できます。 array_column 関数の基本構文は次のとおりです。 arrayarray_column(array$

PHP には 2 次元配列があり、これは他の配列を要素として格納できる特別なタイプの配列です。2 次元配列の宣言とアクセスは非常に簡単です。「array」関数を使用すると、2 次元配列を作成できます。配列はその要素として実際のプログラミングに非常に役立ち、さまざまな複雑なデータ構造を処理するために使用できます。

質問 ランタイム コンパイルを使用して 2 次元配列内のすべての要素の和と積を計算する C プログラムを作成してください。ソリューションのランタイムのコンパイルまたは初期化は、動的割り当てとも呼ばれます。実行時 (ランタイム) にメモリを割り当てることを動的メモリ割り当てと呼びます。関数 calloc() および malloc() は、動的メモリ割り当てをサポートします。関数 calloc() および malloc() は、動的メモリ割り当てをサポートします。 p>このプログラムでは、実行時に 2D 配列のすべての要素の合計とすべての要素の積を計算します。ロジックは、2D 配列内のすべての要素の合計を計算するために使用されます - printf("Sumarrayis:");for(i=0;i<2;i++){&
