目前我有一个像:
这样的数组$post_data=$wpdb->get_results("SELECT * FROM `ucsite_posts` WHERE `post_type` LIKE 'uc_university_review' order by `post_date` desc LIMIT 1");
然后我试图重新组合/重新制作阵列取决于他们的Array(
[0] => Array([range]=>1-10 [count]=>3 [type]=>A)
[1] => Array([range]=>11-20 [count]=>6 [type]=>A)
[2] => Array([range]=>21-30 [count]=>5 [type]=>A)
[3] => Array([range]=>1-10 [count]=>5 [type]=>B)
[4] => Array([range]=>11-20 [count]=>3 [type]=>B)
[5] => Array([range]=>21-30 [count]=>8 [type]=>B)
[6] => Array([range]=>1-10 [count]=>4 [type]=>C)
[7] => Array([range]=>11-20 [count]=>3 [type]=>C)
[8] => Array([range]=>21-30 [count]=>6 [type]=>C)
[9] => Array([range]=>1-10 [count]=>3 [type]=>D)
[10] => Array([range]=>11-20 [count]=>7 [type]=>D)
,预期的输出将是:
type
我试过Array(
[0] => Array([type]=>A [1-10]=>3 [11-20]=>6 [21-30]=>5)
[1] => Array([type]=>B [1-10]=>5 [11-20]=>3 [21-30]=>8)
[2] => Array([type]=>C [1-10]=>4 [11-20]=>3 [21-30]=>6)
[3] => Array([type]=>D [1-10]=>3 [11-20]=>7)
)
,但不是我想要的......
提前致谢。
答案 0 :(得分:1)
这应该适合你:
这里我只是循环遍历整个数组,然后用isset()
检查结果数组是否已经有一个类型相同的innerArray(例如$result["A"]
),如果不是,我将类型添加为值内部数组(.eg $result["A"]["type"] = "A";
)。
完成此项检查后,我只需将range
和count
添加到每种类型(例如$result["A"]["1-10"] = 3;
)
最后,我只需使用array_values()
重新索引整个$result
数组。
<?php
foreach($arr as $k => $v) {
if(!isset($result[$v["type"]]))
$result[$v["type"]]["type"] = $v["type"];
$result[$v["type"]][$v["range"]] = $v["count"];
}
$result = array_values($result);
print_r($result);
?>
输出:
Array
(
[0] => Array
(
[type] => A
[1-10] => 3
[11-20] => 6
[21-30] => 5
)
//...
)