原数组是:
$a=array(
0=>array(
'A'=>'a1',
'B'=>'b1',
'C'=>'c',
),
1=>array(
'A'=>'a1',
'B'=>'b1',
'C'=>'c1',
),
2=>array(
'A'=>'a1',
'B'=>'b',
'C'=>'c1',
)
);如果‘A’,'B'下标对应的值相同,则合并成一个数组,最终要得到的数组如下:
$b=array(
0=>array(
0=>array(
'A'=>'a1',
'B'=>'b1',
'C'=>'c'
),
1=>array(
'A'=>'a1',
'B'=>'b1',
'C'=>'c1'
)
),
1=>array(
0=>array(
'A'=>'a1',
'B'=>'b',
'C'=>'c1'
)
)
);怎么做?
$a=array(
0=>array(
'A'=>'a1',
'B'=>'b1',
'C'=>'c',
),
1=>array(
'A'=>'a1',
'B'=>'b1',
'C'=>'c1',
),
2=>array(
'A'=>'a1',
'B'=>'b',
'C'=>'c1',
)
);如果‘A’,'B'下标对应的值相同,则合并成一个数组,最终要得到的数组如下:
$b=array(
0=>array(
0=>array(
'A'=>'a1',
'B'=>'b1',
'C'=>'c'
),
1=>array(
'A'=>'a1',
'B'=>'b1',
'C'=>'c1'
)
),
1=>array(
0=>array(
'A'=>'a1',
'B'=>'b',
'C'=>'c1'
)
)
);怎么做?
(1)完全相同的字段匹配合并,例如:$a=123; $b="123";这两个变量的字段的类型不一样。
(2)模糊性相同字段的匹配合并,例如:$a=123; $b="1 2 3";这样的两个变量除了其中的空格,trim掉之后进行匹配相同的字段合并呢?
0=>array(
'A'=>'a1',
'B'=>'b1',
'C'=>'c',
),
1=>array(
'A'=>'a1',
'B'=>'b1',
'C'=>'c1',
),
2=>array(
'A'=>'a1',
'B'=>'b',
'C'=>'c1',
)
);
foreach($a as $v) $b["$v[A]@#@$v[B]"][] = $v;
var_export($b);array (
'a1@#@b1' =>
array (
0 =>
array (
'A' => 'a1',
'B' => 'b1',
'C' => 'c',
),
1 =>
array (
'A' => 'a1',
'B' => 'b1',
'C' => 'c1',
),
),
'a1@#@b' =>
array (
0 =>
array (
'A' => 'a1',
'B' => 'b',
'C' => 'c1',
),
),
)
关联数组转下标数组:$b = array_values($b);