可以使用array_reduce函数来实现按关联数组键重新构造多维数组的操作。具体做法是使用array_reduce函数进行遍历,将关联数组的键作为多维数组的键,然后将原来的值添加到相应的位置。下面是示例代码:
$originalArray = array( array('id' => 1, 'name' => 'John', 'age' => 30), array('id' => 2, 'name' => 'Mary', 'age' => 25), array('id' => 3, 'name' => 'Peter', 'age' => 40) );
$associativeArray = array(); foreach ($originalArray as $item) { $associativeArray[$item['id']] = $item; }
$resultArray = array_reduce($associativeArray, function ($carry, $item) { $carry[$item['age']][] = $item; return $carry; }, array());
print_r($resultArray); //output: // Array( // [30] => Array( // [0] => Array( // [id] => 1 // [name] => John // [age] => 30 // ) // ) // [25] => Array( // [0] => Array( // [id] => 2 // [name] => Mary // [age] => 25 // ) // ) // [40] => Array( // [0] => Array( // [id] => 3 // [name] => Peter // [age] => 40 // ) // ) //)
上一篇:按关联模型排序并进行分页