PHP试图对数组中的数组进行排序

时间:2016-04-02 09:48:34

标签: php arrays sorting multidimensional-array

      // sort by day date keys
      ksort($unavailable);
      // sort time blocks of day by start_time
      foreach($unavailable as $each) {
        usort($each['blocks'], function($a, $b) {
          return strcmp($a->start_time, $b->start_time);
        });
      }

正如您所看到的,我们正在尝试按键对数组进行排序,然后使用值start_time

对数组中的块进行排序

这就是数组的样子

[
  "2015-04-25" => [
    "blocks" => [
      $object1,
      $object2,
      $object3
    ]
  ]
]

经过一些调试我意识到问题是对块的修改没有反映在原来的$ unavailable数组中,它似乎没有引用相同的数组......

例如:

foreach($unavailable as $each) {
  $each['blocks'] = null;
}

// $unavaiable[$date]['blocks'] still has original object(s)

解决方案是什么?

2 个答案:

答案 0 :(得分:1)

解决方案是:

$scope.dish = dish;

foreach ($unavailable as &$each) // see that & here? 添加到&表示对$each所做的所有更改都将应用于$each的元素。

答案 1 :(得分:0)

将其引用到父

$unavailable