我dump了一个数组:
array(4) {
[0] => array(6) {
["que_content"] => string(12) "这是谁?"
["que_id"] => string(1) "1"
["ops_qid"] => string(1) "1"
["ops_contentoid"] => string(1) "A"
["ops_content"] => string(18) "啊啊啊啊啊啊"
["ops_count"] => string(1) "0"
}
[1] => array(6) {
["que_content"] => string(12) "这是谁?"
["que_id"] => string(1) "1"
["ops_qid"] => string(1) "1"
["ops_contentoid"] => string(1) "B"
["ops_content"] => string(15) "爸爸八佰伴"
["ops_count"] => string(1) "0"
}
[2] => array(6) {
["que_content"] => string(12) "是我啊?"
["que_id"] => string(1) "2"
["ops_qid"] => string(1) "2"
["ops_contentoid"] => string(1) "C"
["ops_content"] => string(30) "踩踩踩从踩踩踩踩踩踩"
["ops_count"] => string(1) "0"
}
[3] => array(6) {
["que_content"] => string(12) "是我啊?"
["que_id"] => string(1) "2"
["ops_qid"] => string(1) "2"
["ops_contentoid"] => string(1) "D"
["ops_content"] => string(24) "顶顶顶顶顶顶顶顶"
["ops_count"] => string(1) "0"
}
}现在我想把这个数组改成这样的,我想用一个function直接更改应该如何做?array(2) {
[0] => array(2) {
["que_content"] => string(12) "这是谁?"
["que_id"] => string(1) "1"
["opt"]=>array(2){
[0]=>array(3){
["ops_contentoid"] => string(1) "A"
["ops_content"] => string(18) "啊啊啊啊啊啊"
["ops_count"] => string(1) "0"
}
[1]=>array(3){
["ops_contentoid"] => string(1) "B"
["ops_content"] => string(15) "爸爸八佰伴"
["ops_count"] => string(1) "0"
}
}
}
[1] => array(2) {
["que_content"] => string(12) "是我啊?"
["que_id"] => string(1) "2"
["opt"]=>array(2){
[0]=>array(3){
["ops_contentoid"] => string(1) "C"
["ops_content"] => string(30) "踩踩踩从踩踩踩踩踩踩"
["ops_count"] => string(1) "0"
}
[1]=>array(3){
["ops_contentoid"] => string(1) "D"
["ops_content"] => string(24) "顶顶顶顶顶顶顶顶"
["ops_count"] => string(1) "0"
}
}
}
}下面是原数组:Array ( [0] => Array ( [que_content] => 这是谁? [que_id] => 1 [ops_qid] => 1 [ops_contentoid] => A [ops_content] => 啊啊啊啊啊啊 [ops_count] => 0 ) [1] => Array ( [que_content] => 这是谁? [que_id] => 1 [ops_qid] => 1 [ops_contentoid] => B [ops_content] => 爸爸八佰伴 [ops_count] => 0 ) [2] => Array ( [que_content] => 是我啊? [que_id] => 2 [ops_qid] => 2 [ops_contentoid] => C [ops_content] => 踩踩踩从踩踩踩踩踩踩 [ops_count] => 0 ) [3] => Array ( [que_content] => 是我啊? [que_id] => 2 [ops_qid] => 2 [ops_contentoid] => D [ops_content] => 顶顶顶顶顶顶顶顶 [ops_count] => 0 ) ) php数组
array(4) {
[0] => array(6) {
["que_content"] => string(12) "这是谁?"
["que_id"] => string(1) "1"
["ops_qid"] => string(1) "1"
["ops_contentoid"] => string(1) "A"
["ops_content"] => string(18) "啊啊啊啊啊啊"
["ops_count"] => string(1) "0"
}
[1] => array(6) {
["que_content"] => string(12) "这是谁?"
["que_id"] => string(1) "1"
["ops_qid"] => string(1) "1"
["ops_contentoid"] => string(1) "B"
["ops_content"] => string(15) "爸爸八佰伴"
["ops_count"] => string(1) "0"
}
[2] => array(6) {
["que_content"] => string(12) "是我啊?"
["que_id"] => string(1) "2"
["ops_qid"] => string(1) "2"
["ops_contentoid"] => string(1) "C"
["ops_content"] => string(30) "踩踩踩从踩踩踩踩踩踩"
["ops_count"] => string(1) "0"
}
[3] => array(6) {
["que_content"] => string(12) "是我啊?"
["que_id"] => string(1) "2"
["ops_qid"] => string(1) "2"
["ops_contentoid"] => string(1) "D"
["ops_content"] => string(24) "顶顶顶顶顶顶顶顶"
["ops_count"] => string(1) "0"
}
}现在我想把这个数组改成这样的,我想用一个function直接更改应该如何做?array(2) {
[0] => array(2) {
["que_content"] => string(12) "这是谁?"
["que_id"] => string(1) "1"
["opt"]=>array(2){
[0]=>array(3){
["ops_contentoid"] => string(1) "A"
["ops_content"] => string(18) "啊啊啊啊啊啊"
["ops_count"] => string(1) "0"
}
[1]=>array(3){
["ops_contentoid"] => string(1) "B"
["ops_content"] => string(15) "爸爸八佰伴"
["ops_count"] => string(1) "0"
}
}
}
[1] => array(2) {
["que_content"] => string(12) "是我啊?"
["que_id"] => string(1) "2"
["opt"]=>array(2){
[0]=>array(3){
["ops_contentoid"] => string(1) "C"
["ops_content"] => string(30) "踩踩踩从踩踩踩踩踩踩"
["ops_count"] => string(1) "0"
}
[1]=>array(3){
["ops_contentoid"] => string(1) "D"
["ops_content"] => string(24) "顶顶顶顶顶顶顶顶"
["ops_count"] => string(1) "0"
}
}
}
}下面是原数组:Array ( [0] => Array ( [que_content] => 这是谁? [que_id] => 1 [ops_qid] => 1 [ops_contentoid] => A [ops_content] => 啊啊啊啊啊啊 [ops_count] => 0 ) [1] => Array ( [que_content] => 这是谁? [que_id] => 1 [ops_qid] => 1 [ops_contentoid] => B [ops_content] => 爸爸八佰伴 [ops_count] => 0 ) [2] => Array ( [que_content] => 是我啊? [que_id] => 2 [ops_qid] => 2 [ops_contentoid] => C [ops_content] => 踩踩踩从踩踩踩踩踩踩 [ops_count] => 0 ) [3] => Array ( [que_content] => 是我啊? [que_id] => 2 [ops_qid] => 2 [ops_contentoid] => D [ops_content] => 顶顶顶顶顶顶顶顶 [ops_count] => 0 ) ) php数组
'0' => Array (
'que_content' => '这是谁?' ,
'que_id' => 1,
'ops_qid' => 1,
'ops_contentoid' => 'A',
'ops_content' => '啊啊啊啊啊啊' ,
'ops_count' => 0
) ,
'1' => Array (
'que_content' => '这是谁?',
'que_id' => 1 ,
'ops_qid' => 1 ,
'ops_contentoid' => 'B',
'ops_content' => '爸爸八佰伴',
'ops_count' => 0
) ,
'2' => Array (
'que_content' => '是我啊?',
'que_id' => 2 ,
'ops_qid' => 2 ,
'ops_contentoid' => 'C',
'ops_content' => '踩踩踩从踩踩踩踩踩踩 ',
'ops_count' => 0
) ,
'3' => Array (
'que_content' => '是我啊?',
'que_id' => 2 ,
'ops_qid' => 2 ,
'ops_contentoid' => 'D',
'ops_content' => '顶顶顶顶顶顶顶顶 ',
'ops_count' => 0,
)
);
$t=array();
foreach($arr as $v){
if(!$t[$v['que_id']]){
$t[$v['que_id']]=array('que_content'=>$v['que_content'],'que_id'=>$v['que_id'],'opt'=>array(array_slice($v,3)));
} else{
$t[$v['que_id']]['opt'][]=array_slice($v,3);
}
}
print_r(array_values($t));
0 =>
array (
'que_content' => '这是谁?',
'que_id' => '1',
'ops_qid' => '1',
'ops_contentoid' => 'A',
'ops_content' => '啊啊啊啊啊啊',
'ops_count' => '0',
),
1 =>
array (
'que_content' => '这是谁?',
'que_id' => '1',
'ops_qid' => '1',
'ops_contentoid' => 'B',
'ops_content' => '爸爸八佰伴',
'ops_count' => '0',
),
2 =>
array (
'que_content' => '是我啊?',
'que_id' => '2',
'ops_qid' => '2',
'ops_contentoid' => 'C',
'ops_content' => '踩踩踩从踩踩踩踩踩踩',
'ops_count' => '0',
),
3 =>
array (
'que_content' => '是我啊?',
'que_id' => '2',
'ops_qid' => '2',
'ops_contentoid' => 'D',
'ops_content' => '顶顶顶顶顶顶顶顶',
'ops_count' => '0',
),
);
$d = array(
'que_content' => '',
'que_id' => '',
'ops_qid' => '',
);
$res = array();
foreach($ar as $item) {
if(! isset($res[$item['que_id']])) $res[$item['que_id']] = array_intersect_key($item, $d);
$res[$item['que_id']][] = array_diff_key($item, $d);
}
print_r(array_values($res));Array
(
[0] => Array
(
[que_content] => 这是谁?
[que_id] => 1
[ops_qid] => 1
[0] => Array
(
[ops_contentoid] => A
[ops_content] => 啊啊啊啊啊啊
[ops_count] => 0
) [1] => Array
(
[ops_contentoid] => B
[ops_content] => 爸爸八佰伴
[ops_count] => 0
) ) [1] => Array
(
[que_content] => 是我啊?
[que_id] => 2
[ops_qid] => 2
[0] => Array
(
[ops_contentoid] => C
[ops_content] => 踩踩踩从踩踩踩踩踩踩
[ops_count] => 0
) [1] => Array
(
[ops_contentoid] => D
[ops_content] => 顶顶顶顶顶顶顶顶
[ops_count] => 0
) ))
'que_content' => '',
'que_id' => '',
);
$d2 = array(
'que_content' => '',
'que_id' => '',
'ops_qid' => '',
);
$res = array();
foreach($ar as $item) {
if(! isset($res[$item['que_id']])) $res[$item['que_id']] = array_intersect_key($item, $d1);
$res[$item['que_id']]['opt'][] = array_diff_key($item, $d2);
}