开发者社区> 问答> 正文

通过基于另一个数组的键对数组进行排序?

在PHP中可以做这样的事情吗?您将如何编写函数?这是一个例子。顺序是最重要的。

$customer['address'] = '123 fake st'; $customer['name'] = 'Tim'; $customer['dob'] = '12/08/1986'; $customer['dontSortMe'] = 'this value doesnt need to be sorted'; 我想做类似的事情

$properOrderedArray = sortArrayByArray($customer, array('name', 'dob', 'address')); 因为最后我使用了foreach()并且它们的顺序不正确(因为我将值附加到需要正确顺序的字符串中,而且我事先不知道所有的数组键/值)。

我看过PHP的内部数组函数,但看来您只能按字母或数字排序。

问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-07 00:53:59 493 0
1 条回答
写回答
取消 提交回答
  • 只需使用array_merge或即可array_replace。Array_merge通过以给定的数组(按正确的顺序)开始并用实际数组中的数据覆盖/添加键来工作:

    $customer['address'] = '123 fake st'; $customer['name'] = 'Tim'; $customer['dob'] = '12/08/1986'; $customer['dontSortMe'] = 'this value doesnt need to be sorted';

    $properOrderedArray = array_merge(array_flip(array('name', 'dob', 'address')), $customer); //Or: $properOrderedArray = array_replace(array_flip(array('name', 'dob', 'address')), $customer);

    //$properOrderedArray -> array('name' => 'Tim', 'address' => '123 fake st', 'dob' => '12/08/1986', 'dontSortMe' => 'this value doesnt need to be sorted')

    2020-02-07 00:54:16
    赞同 展开评论 打赏
问答分类:
PHP
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载