相关疑难解决方法(0)

基于另一个数组按键对数组进行排序?

在PHP中可以做这样的事情吗?你会如何写一个函数?这是一个例子.订单是最重要的.

$customer['address'] = '123 fake st';
$customer['name'] = 'Tim';
$customer['dob'] = '12/08/1986';
$customer['dontSortMe'] = 'this value doesnt need to be sorted';
Run Code Online (Sandbox Code Playgroud)

我想做点什么

$properOrderedArray = sortArrayByArray($customer, array('name', 'dob', 'address'));
Run Code Online (Sandbox Code Playgroud)

因为最后我使用foreach()并且它们的顺序不正确(因为我将值附加到需要按正确顺序排列的字符串中,并且我事先并不知道所有数组键/值).

我查看了PHP的内部数组函数,但似乎只能按字母顺序或数字顺序排序.

php arrays sorting

136
推荐指数
8
解决办法
13万
查看次数

PHP:如何使用和维护密钥?

我有以下数组(JSON-ified以方便查看):

{
  "23": {
    "price": "33.99"
  },
  "38": {
    "price": "30.86"
  },
  "51": {
    "price": "31.49"
  }
}
Run Code Online (Sandbox Code Playgroud)

我想通过price键对它进行排序,但我希望结果也返回包含价格的元素的键,所以像这样:

{
  "38": {
    "price": "30.86"
  },
  "51": {
    "price": "31.49"
  },
  "23": {
    "price": "33.99"
  }
}
Run Code Online (Sandbox Code Playgroud)

我的usort回调是这样的:

private function _price_sort($a, $b)
{
    if ($a['price'] == $b['price']) {
        return 0;
    }
    return ($a['price'] < $b['price']) ? -1 : 1;
}
Run Code Online (Sandbox Code Playgroud)

...以正确的顺序返回数组,但没有元素容器:

[
  {
    "price": "30.86"
  },
  {
    "price": "31.49"
  },
  {
    "price": "33.99"
  }
]
Run Code Online (Sandbox Code Playgroud)

我是否需要在回调函数中执行某些操作或者使用以保留密钥?

php arrays sorting json

3
推荐指数
1
解决办法
2885
查看次数

标签 统计

arrays ×2

php ×2

sorting ×2

json ×1