ホームページ >バックエンド開発 >PHPチュートリアル >PHP配列の水平行を垂直行に変換する方法

PHP配列の水平行を垂直行に変換する方法

WBOY
WBOYオリジナル
2016-06-23 13:30:221221ブラウズ

ハルビンC、東北区 76850.4600 76850.4600 76850.4600
ハルビンC、東北区 602267.1390 602267.1390 602267.1390
ハルビンC、東北区 55356.1110 55356.111 0 55356.1110
東北区瀋陽B 51855.8950 51855.8950 51855.8950
東北区瀋陽B 385946.7430 385946.7430 385946.7430
東北区瀋陽 B 1588513.5 266 1588513.5266 1588513.5266
同じ 都市の 3 つの異なる数字を同じ行に組み合わせると、次の形式になります:
東北区ハルビン C 76850.4600 602267.1390 55356.1110
東北地区瀋陽B 51855.8950 385946.7430 1588513.5266
言い換えれば、元の最後の 2 つの数字セットはもう必要ないということですか?

for($i=0;$i<count($city_arr);$i++){   $n=0;   $m=0;   for($j=0;$i<count($city_arr);$j++){        $m=$m+1;	if(($city_arr[$i][0]==$city_arr[$j][0]) and ($city_arr[$i][1]==$city_arr[$j][1]) and ($city_arr[$i][2]==$city_arr[$j][2]))	{	  $n=$+1;	  //再记录一下 每次$j的值[少于=3次的,$j值,后边赋值newcity后重新记录]	}	if($m==3 and $n<>3){	   $newcity_arr[]=	array($city_arr[$j][0],$city_arr[$j][1],$city_arr[$j][2]);	   $m = 0;		   $i = $n;	}	if($n == 3 and $n=$m){	   $newcity_arr[]=	array($city_arr[$j][0],$city_arr[$j][1],$city_arr[$j][2]);	   $m = 0;	   $i = $n;	   $n = 0;	}	   }	  }

$ar = array(  array('东北区',	'哈尔滨',	'C',	76850.4600,	76850.4600,	76850.4600),  array('东北区',	'哈尔滨',	'C',	602267.1390,	602267.1390,	602267.1390),  array('东北区',	'哈尔滨',	'C',	55356.1110,	55356.1110,	55356.1110),  array('东北区',	'沈阳',	'B',	51855.8950,	51855.8950,	51855.8950),  array('东北区',	'沈阳',	'B',	385946.7430,	385946.7430,	385946.7430),  array('东北区',	'沈阳',	'B',	1588513.5266,	1588513.5266,	1588513.5266),);$n = 3; //锁定前 3 列$res = array();foreach($ar as $t) {  $k = join('_', array_slice($t, 0, $n));  if(! isset($res[$k])) $res[$k] = array_slice($t, 0, $n);  $res[$k][] = $t[$n];}$res = array_values($res);print_r($res);
Array(    [0] => Array        (            [0] => 东北区            [1] => 哈尔滨            [2] => C            [3] => 76850.46            [4] => 602267.139            [5] => 55356.111        )    [1] => Array        (            [0] => 东北区            [1] => 沈阳            [2] => B            [3] => 51855.895            [4] => 385946.743            [5] => 1588513.5266        ))
の出力方法を教えてとは頼まないでください

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