使用函数参数排序编号对PHP数组进行排序

我正在构建一个PHP函数以将JavaScript文件排队到一个PHP数组中,然后有另一个PHP函数将所有JS文件装载到一个页面中,并根据可以传递到enqueue函数中的排序号按顺序装载它们.类似于WordPress加载JS和CSS文件的方式.

因此,我的PHP函数enqueue_js_script()可能如下所示,其中包含JS文件的键名,JS文件的文件路径以及可选的排序顺序号.然后,它将JS文件添加到PHP类属性$this-> _js_files [$script_key] …

public function enqueue_js_script($script_key, $file_source, $load_order = 0){
    $this->_js_scripts[$script_key] = $file_source;
}

然后,我还将具有一个PHP函数load_js_scripts(),该函数会将每个脚本文件路径打印到网页HTML的标题中.

在这里,我要考虑传递给enqueue_js_script()的$load_order以根据这些数字按顺序将脚本打印到HTML中.

如何使用此排序顺序号对我的JS脚本数组进行排序?

更新

看起来我应该将排序号存储在这样的数组中…

    $this->_js_files[$script_key] = array(
      'file_source' => $file_source,
      'sort' => $load_order
    );

解决方法:

使用usort和自定义排序功能:

<?php 
public function enqueue_js_script($script_key, $file_source, $load_order = 0){
    $jsScript = new \stdClass;
    $jsScript->load_order = $load_order;
    $jsScript->script_key = $script_key;
    $this->_js_scripts[$script_key] = $jsScript;
}

function sortJSFiles($a, $b)
{
    if ($a->load_order == $b->load_order) {
        return 0;
    }
    return ($a->load_order < $b->load_order) ? -1 : 1;
}


usort($this->_js_scripts, "sortJSFiles");
上一篇:Python并行排序


下一篇:linux-如何按特定列对CSV文件排序?