【问题标题】:Sort data from an external API in Wordpress在 Wordpress 中对来自外部 API 的数据进行排序
【发布时间】:2019-08-10 23:44:37
【问题描述】:

我目前正在为 Wordpress 开发一个测试函数,该函数从外部 API 获取数据。它成功获取数据,但我希望在 foreach 循环中按 ASC 顺序中的“名称”字段对数据列表进行排序。

我尝试在 foreach 循环之前添加 usort、rsort 等,但没有效果。想问问有没有人有这方面的经验,谢谢。

function api_demo($atts) {
  $args = array( 
    'headers' => array(
      'Authorization' => '****'
    )
  ); 

  $response = wp_remote_get( 'https://****', $args ); 
  $lists = json_decode( $response['body'], true );

  if( !empty( $lists ) ) {
    echo '<ul>';
    foreach( $lists["data"] as $list ) {
      echo '<li>' . $list['name'] . '</li>';
    } 
    echo '</ul>'; 
  }
}

这是 $list 的输出:

array(2) { ["data"]=> array(12) { [0]=> array(89) { ["id"]=> string(6) "479136" ["url"]=> string(43) "app.celoxis.com/psa/projects****" ["name"]=> string(14) "Server Maintan" etc

【问题讨论】:

    标签: php arrays wordpress sorting


    【解决方案1】:

    你可以使用usort函数。
    起始数组:

    $array = Array (
        Array (
            "id" => "1",
            "url" => "url 1",
            "name" => "hi!"
            ),
        Array (
            "id" => "2",
            "url" => "url 2",
            "name" => "by the way"
            ),
        Array (
            "id" => "3",
            "url" => "url 3",
            "name" => "hello"
            ),
        Array (
            "id" => "4",
            "url" => "url 4",
            "name" => "again!"
            ),
    );
    

    按名称对起始多维数组进行排序的代码:

    function name_compare($element1, $element2) {
        return strcasecmp($element1['name'], $element2['name']);
    }
    
    // Sort the array
    usort($array, 'name_compare');
    
    // Print the array
    echo '<pre>';
    print_r($array)
    

    【讨论】:

      猜你喜欢
      • 2022-01-26
      • 2019-04-09
      • 2018-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多