【问题标题】:PHP array is not showing in orderPHP数组未按顺序显示
【发布时间】:2018-11-29 13:00:33
【问题描述】:

您好,我有一个 WordPress 站点,其中包含一个包含元素的数组,当我遍历数组时,我希望字段按照数组中设置的顺序显示。例如:

我的数组:

$metas = get_post_meta($post->ID);
$metatodisplay = array('address', 'county', 'postcode', 'region', 'telephone', 'fax', 'email', 'website', 'contact', 'cab_member_since', 'twitter', 'linkedin');

我的 foreach 循环:

foreach($metas as $key=>$value){
   if(in_array($key, $metatodisplay)){
     echo $key;
   }    
}

我希望数组值按$metatodisplay 数组中所示的顺序显示。此时它们在几个页面上只是随机的,而在其他页面上则正确显示。

【问题讨论】:

    标签: php arrays wordpress foreach


    【解决方案1】:

    这应该可行:

    foreach($metatodisplay as $key){
       if(isset($metas[$key])){
         echo $key;
       }    
    }
    

    您的代码按顺序运行来自$metas 的所有值,并将它们与$metatodisplay 进行比较(而不考虑$metatodisplay 的顺序)。更改后的代码使用$metatodisplay 的确切顺序,忽略$metas 内的顺序。

    如果你想对来自$metas 的值做一些事情,你可以简单地访问它们,例如通过echo $metas[$key]

    【讨论】:

    • 我还需要能够显示值
    • 在原代码中,你没有输出任何值
    • 我只是使用了一个我需要排序的基本示例,但我还需要显示 $value
    • 啊,您是在寻找某种基于$metatodisplay 顺序的排序算法吗?为什么一开始不提这个?
    • 你看,我并不完全有经验,实际上很新,我只是问是否有可能有一个功能或某种。我不知道我是否必须使用排序算法,所以我来这里寻求建议,而不是因为我的问题而受到抨击。谢谢你试图帮助我。我稍后会以更好的方式问我的问题。希望有更多耐心的人能够指导我并更好地解释。使用谷歌搜索排序时,它一直为我提供功能。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-22
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多