如何对下面给出的数组进行排序?

时间:2014-07-09 18:06:46

标签: php arrays wordpress

我想知道WordPress如何使用wp_add_dashboard_widget()函数添加小部件。我做了一些类似的东西。我创建了一个全局变量数组和2个函数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" => "Sample", "content" => "A very simple sample!" ) );

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

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

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

提前致谢!

1 个答案:

答案 0 :(得分:0)

我会用usort。使用匿名函数(PHP 5.3 +)

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

否则首先定义函数......

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