【问题标题】:PHP array_values sorted by given indexesPHP array_values 按给定索引排序
【发布时间】:2021-11-17 19:45:13
【问题描述】:

数据是这种格式,一个未排列的对象数组上的列表。

array:4 [▼
  0 => {#688 ▼
    +"title": "My Item 1"
    +"categories": "3,4,5,6"
    +"sku": "1"
    +"user_id": "5"
  }
  1 => {#663 ▼
    +"title": "My Item 1"
    +"sku": "2"
    +"categories": "3,4,5,6"
    +"user_id": "6"
  }
  2 => {#686 ▼
    +"title": "My Item 1"
    +"user_id": "7"
    +"categories": "3,4,5,6"
    +"sku": "3"
  }
  3 => & {#290 ▼
    +"title": "My Item 1"
    +"categories": "3,4,5,6"
    +"sku": "4"
    +"user_id": "8"
  }
]

但我想要排列数组格式的值,例如 title, SKU, categories, user_id ("My Item 1", "2,3,5,6", "1", "5")

现在我正在使用 array_values,但是数据以未排序的方式出现,例如索引 1 SKU 在类别之前,我怎样才能得到它?有没有我们可以使用的原生 PHP 或 Laravel 方法?

编辑:上面只是一个示例数组,真实数据有50+列,所以我不能在循环中静态定义它们。

谢谢

【问题讨论】:

  • 您可以使用数组按键排序
  • @A.ANoman ksort 会将其设为 category、sku、title、user_id,我希望它是 title、SKU、categories、user_id 谢谢

标签: php arrays laravel object


【解决方案1】:

如果您只想对键进行排序,可以使用ksort(),如果您希望它们按特定顺序排列,您可以像这样重组数组:

$arr = [...your array];
$newArr = [];

foreach ($arr as $item) {
    $newItem = [
        'title' => $item['title'],
        'SKU' => $item['SKU'],
        'categories' => $item['categories'],
        'user_id' => $item['user_id']
    ];

    array_push($newArr, $newItem);
}

【讨论】:

    【解决方案2】:

    如果你想像下面这样自定义数组索引,你必须使用array_push

    $expectedArray = array();
    
    foreach ($your_array as $data){
    
        array_push($expectedArray ,array(
    
            'title'        => $data['title'],
            'SKU'          => $data['SKU'],
            'categories'   => $data['categories'],
            'user_id'      => $data['user_id']
    
        ));
    }
    

    【讨论】:

    • 其实我有一个非常大的数组,里面有很多列(上面的只是一个例子),但是我确实有一个$columns keys 数组,我只是想要排列我的数组数据
    • @MZH,好的。请检查您的密钥alphabetical orders. If keys are alphabetical 然后不需要array_push 但如果您需要custom 密钥那么您别无选择
    猜你喜欢
    • 2015-11-02
    • 1970-01-01
    • 1970-01-01
    • 2011-03-16
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 2023-03-30
    • 2016-02-15
    相关资源
    最近更新 更多