ホームページ > バックエンド開発 > PHPチュートリアル > 多次元配列のソートに関する問題

多次元配列のソートに関する問題

WBOY
リリース: 2016-06-13 13:35:47
オリジナル
1040 人が閲覧しました

多次元配列のソート問題
には配列があります:

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><?php
$arr = array(array(1,0),array(2,0),array(3,0),array(4,0),array(5,1),array(6,1),array(7,5),array(8,2)); ?>
ログイン後にコピー


望ましいソート結果は次のとおりです:
PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><?php
$arr = array(array(1,0),array(5,1),array(7,5),array(6,1),array(2,0),array(8,2),array(3,0),array(4,0)); ?>
ログイン後にコピー


つまり: $arr[$i][0] == $arr[$j][1] そして、$arr[$j] は $arr[$i] の後ろに配置されます

実際には、は無限分類Aのソートで、複数のループで処理してみましたが、再帰を使って実装したかったのですが、$arr[$i][0]=1しか達成できませんでした。助けてください。 🎜> カテゴリは比較的少ないです


-----解決策---------------------- -------- 次のように記述します
PHP コード
$arr = 配列(配列(1,0),配列(2,0),配列(3,0),配列(4,0),配列(5,1),配列(6,1),配列(7) ,5),配列(8,2)); print_r(foo($arr)); 関数 foo($ar, $p=0) { $r = 配列(); foreach($ar as $v) { if($v[1] == $p) { $r[] = $v; $r = array_merge($r, foo($ar, $v[0])); } } $r を返します。
<div class="clear"></div>
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート