This article mainly introduces the method of PHP to realize vertical conversion of arrays to horizontal and filter duplicate values. It combines specific examples to compare and analyze PHP's operating skills related to array traversal, conversion and deduplication. Friends who need it can refer to it
The example in this article describes the method of converting an array vertically to horizontally and filtering duplicate values in PHP. Share it with everyone for your reference, the details are as follows:
1. Question
has an array:
array( 6=>array(5=>'黑xx', 42=>'XXL'), 7=>array(5=>'黑xx', 40=>'XL'), 8=>array(8=>'灰', 40=>'XL'), );
is required to be converted into the following result (the array is turned vertically and horizontally and duplicate values are filtered):
array( 0=>array(5=>'黑xx', 8=>'灰'), 1=>array(42=>'XXL', 40=>'XL'), );
2. Solution:
Method 1:
$a = array( 6=>array(5=>'黑xx', 42=>'XXL'), 7=>array(5=>'黑xx', 40=>'XL'), 8=>array(8=>'灰', 40=>'XL'), ); foreach($a as $r) { $b[key($r)] = current($r); next($r); $c[key($r)] = current($r); } $b = array($b, $c); print_r($b);
Method 2 :
$arr = array( 6=>array(5=>'黑xx', 42=>'XXL'), 7=>array(5=>'黑xx', 40=>'XL'), 8=>array(8=>'灰', 40=>'XL'), ); $result = array(); foreach($arr as $a){ $keys = array_keys($a); $vals = array_values($a); $result[0][$keys[0]] = $vals[0]; $result[1][$keys[1]] = $vals[1]; } print_r($result);
The simplest way to write:
$a = array( 6=>array(5=>'黑xx', 42=>'XXL'), 7=>array(5=>'黑xx', 40=>'XL'), 8=>array(8=>'灰', 40=>'XL'), ); foreach($a as $r) { $i = 0; while(list($k, $v) = each($r)) $b[$i++][$k] = $v; } print_r($b);
The final running results are:
Array ( [0] => Array ( [5] => 黑xx [8] => 灰 ) [1] => Array ( [42] => XXL [40] => XL ) )
The above is the detailed content of Analysis on the method of converting an array vertically to horizontally and filtering duplicate values in PHP. For more information, please follow other related articles on the PHP Chinese website!