php - 在php和wordpress中合并然后排序2个数组

标签 php arrays wordpress sorting

我正在尝试在 PHP 中合并 2 个数组,然后对它们进行排序。

我正在从 WordPress 数据库(标签和类别)中提取数据,我需要合并它们并正确排序。

代码看起来类似于:

$categories = [ 
  '<a>WordPress Tips</a>',
  '<a>SEO Tips'</a>, 
  '<a>Development Tips</a>' 
]; 

$tags = [ 
  '<a>WordPress</a>',
  '<a>SEO'</a>, 
  '<a>Development</a>' 
]; 

$taxonomies = array_merge($categories, $tags);
sort($taxonomies);

由于我需要循环遍历 $taxonomies 数组并使用包含的 anchor 打印它们(其中每个都必须有一个有效的 URL 本身),所以我没有得到正确的排序结果。然而,一旦我“删除”这些项目周围的所有标签,排序就会按预期进行,但我没有得到我需要的 URL,只有字符串/文本。

有人可以建议一种更好的排序算法,该算法可以使用周围包含的 html 元素对这些项目进行正确排序吗?谢谢!

最佳答案

您需要使用 usort() 进行自定义比较才能使其正常工作和 strip_tags()

<?php
$taxonomies = array_merge($categories, $tags);
print_r($taxonomies);
function cmp($a, $b){
    $data1 = strip_tags($a);
    $data2 = strip_tags($b);
    return ($data1 < $data2) ? -1 : 1;
}
usort($taxonomies, "cmp");
print_r($taxonomies);

输出:- https://eval.in/934071

关于php - 在php和wordpress中合并然后排序2个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48225144/

相关文章:

php - SQL : get count of articles in two categories

php - HTTPS/PHP/NGINX : php://input data is NULL when HTTPS is enabled

java - 将 3 字节数组转换为数字

html - 主页宽度与主题中的其他页面宽度不同

html - 产品对齐问题 Woocommerce

php - 使用 PostgreSQL 安装 OwnCloud - 未在 Ubuntu 12.04LTS 上进行身份验证

javascript - 为什么当我们使用 php header 函数时警报不起作用? .我知道 window.location.href 是解决方案

c++ - 以数学方式旋转有序数字数组

javascript - for in 循环只影响数组的最后一个元素,我希望我的代码适用于数组的每个元素

Wordpress 获取所有属性和值