【问题标题】:Change position of elements in array更改数组中元素的位置
【发布时间】:2014-02-24 11:39:10
【问题描述】:

我有一个简单的问题: 查询返回我想在 PHP 中更改元素顺序的数组。

我有一个这样的数组:

$typesSumAr = array( 'break', 'private absence', 'sick leave', 'vacation', 'work', 'work absence' );

我想要一个按这个顺序排列的数组:

$typesSumAr = array( 'work', 'break', 'sick leave', 'vacation', 'private absence', 'work absence' );

数组中并不总是所有元素,例如可能只有两个,所以我不能对数组进行硬编码。我是否需要创建 if 语句来确定 key 是否存在,然后手动排序?

感谢您的回答。

【问题讨论】:

  • 排序应该基于什么逻辑?
  • 没有逻辑,我想按第二个数组的顺序排列。

标签: php arrays sorting element


【解决方案1】:

看到您有一个按您喜欢的顺序排列的数组,您的问题归结为保留另一个数组中也存在的元素。 PHP 有一个功能:array_intersect

array_intersect 返回一个数组,其中包含所有参数中存在的第一个数组参数的所有值。请注意,密钥会被保留。

【讨论】:

    【解决方案2】:

    有很多很棒的数组排序功能,具体取决于您要如何排序。看看这里http://www.php.net/manual/en/array.sorting.php 或者甚至通过 uksort (http://www.php.net/manual/en/function.uksort.php) 基于你自己的函数

    【讨论】:

    • 有用,谢谢,但在这种情况下我需要array_intersect。
    猜你喜欢
    • 2012-09-03
    • 1970-01-01
    • 2021-09-21
    • 2017-12-09
    • 2016-09-28
    • 2015-07-01
    • 2014-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多