【问题标题】:How to sort arrays like given below?如何对下面给出的数组进行排序?
【发布时间】:2014-07-09 18:06:45
【问题描述】:

我想知道 WordPress 如何使用wp_add_dashboard_widget() 函数来添加小部件。我做了一些类似的东西。我创建了一个全局变量数组和两个函数add_widget()display_widget()。代码如下:

<?php
$widgets = array();
function add_widget( $array=array() )
{
    global $widgets;
    $widgets[] = $array;
    return;
}

function display_widgets()
{
    global $widgets;
    foreach ($widgets as $widget) {
    ?>


        <h1><?php echo $widget['name']; ?></h1>
        <p><?php echo $widget['content']; ?></p>


    <?php
    }   
}
add_widget( $widget_1 );
add_widget( $widget_2 );
add_widget( array( "name" => "Sample", "content" => "A very simple sample!" ) );


display_widgets();

?>

所以你们可以看到每个函数将$widget 全球化,然后显示或添加小部件。

我的问题
每当我使用此功能添加小部件时

add_widget( array( "name" =&gt; "Sample", "content" =&gt; "A very simple sample!" ) );

我希望它获得另一个密钥,这就是顺序,所以它看起来像这样:

add_widget( array( "name" => "Sample", "content" => "A very simple sample!", "order" => 1 ) );

所以在display_widgets() 中,它首先对其中的数组进行排序,然后再显示它们。

提前致谢!

【问题讨论】:

    标签: php arrays wordpress


    【解决方案1】:

    我会使用 usort。带匿名函数(PHP5.3+)

    usort($myArray, function($a, $b) {
        return $a['order'] - $b['order'];
    });
    

    否则先定义函数...

    function sortByOrder($a, $b) {
        return $a['order'] - $b['order'];
    }
    usort($myArray, 'sortByOrder');
    

    【讨论】:

    • return $a['order'] - $b['order'];是他们之间的减号吗?
    • 是的,是的。排序顺序取决于差值是正数还是负数。
    猜你喜欢
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 2020-12-27
    • 2023-04-01
    • 2021-09-12
    • 2017-07-16
    相关资源
    最近更新 更多