按值对多维数组排序

时间:2019-01-04 05:51:11

标签: php wordpress

使类别的wordpress按组排序。

Array
(
[0] => WP_Term Object
    (
        [term_id] => 199
        [name] => 170
        [term_group] => 2
    )

[1] => WP_Term Object
    (
        [term_id] => 410
        [name] => 80s
        [term_group] => 2
    )

[2] => WP_Term Object
    (
        [term_id] => 66
        [name] => 8BIT
        [term_group] => 0
    )

[3] => WP_Term Object
    (
        [term_id] => 411
        [name] => adventure
        [term_group] => 0
    )
//... more then 100+

我关注term_group 有创建12组。 1至12

使用时不是组

$tags = get_tags(); //array above
foreach ($tags as $tag) {
    if ($tag->term_group==1) {
        echo "group 1";
        echo $tag->name;
    }

    if ($tag->term_group==2) {
        echo "group 2";
        echo $tag->name;
    }

    // .... until group 12
}

此数组可以输出类似

  

第1组xxx aaa bbb

     

2170 80s组

     

第3组....

2 个答案:

答案 0 :(得分:0)

解决

$group = array();
foreach ( $tags as $value ) {
    $group[$value->term_group][] = $value;
}
echo "group 1";
foreach($group['1'] as $result) {
    echo $result->name;
}

答案 1 :(得分:0)

我无法访问您的$ tags数组。因为它是对象格式的数组。

所以我刚刚开发了代码。您可以尝试如下操作。

<?php
$dataArray = array();
foreach ($tags as $tag) {
    for($i=1;$i<13;$i++){
        if ($tag->term_group==$i) {
            $dataArray[$i] = $tag;
            continue 2; 
        }
    }
}
// Just print this $dataArray and check this array contain the term_group sets.

for($i=1;$i<13;$i++){
    echo "group".$i;
    if($dataArray[$i]){
        foreach ($dataArray[$i] as $key => $value) {
             echo $value['term_group'];
        }
        echo "<br/>";
    }
}
?>

谢谢。