gpt4 book ai didi

php - 基于另一个数组的键对数组进行排序?

转载 作者:IT老高 更新时间:2023-10-28 11:45:35 24 4
gpt4 key购买 nike

在 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 的内部数组函数,但您似乎只能按字母或数字排序。

最佳答案

只需使用 array_mergearray_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',
// 'dob' => '12/08/1986',
// 'address' => '123 fake st',
// 'dontSortMe' => 'this value doesnt need to be sorted')

PS:我正在回答这个“陈旧”的问题,因为我认为作为先前答案给出的所有循环都是多余的。

关于php - 基于另一个数组的键对数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/348410/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com