ホームページ  >  記事  >  バックエンド開発  >  多次元配列のソートに関する問題

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

WBOY
WBOYオリジナル
2016-06-13 13:35:47984ブラウズ

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

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>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。