我有一个大的多维数组,我从数据库中获取了图片位置
Array
(
[0] => Array
(
[name] => 01.jpg
[album] => /images/beach
)
[1] => Array
(
[name] => 02.jpg
[album] => /images/beach
)
[2] => Array
(
[name] => 03.jpg
[album] => /images/home
)
)
我正在尝试将其拆分为与相册匹配的较小数组,如下所示:
Array
(
[0] => Array
(
[name] => 01.jpg
[album] => /images/beach
)
[1] => Array
(
[name] => 02.jpg
[album] => /images/beach
)
)
Array
(
[0] => Array
(
[name] => 03.jpg
[album] => /images/home
)
)
什么是好的方法呢?我想把第一个值转换成一个新数组,直到我到达终点,但必须有一个更有效的方法。
答案 0 :(得分:0)
我会这样做。
$albums = array();
foreach ($dbrows as $dbrow) {
$albums[$dbrow['album']][] = $dbrow;
}
unset($dbrows);
var_dump($albums);
答案 1 :(得分:0)
您可以使用album
作为密钥创建新阵列,您需要将其分组,然后根据需要使用array_values
更新密钥。
<?php
$arrays = array
(
'0' => array
(
'name' => '01.jpg',
'album' => '/images/beach'
),
'1' => array
(
'name' => '02.jpg',
'album' => '/images/beach'
),
'2' => array
(
'name' => '03.jpg',
'album' => '/images/home'
)
);
$results = array();
foreach($arrays as $array){
$results[$array['album']][] = $array;
}
$results = array_values($results);
print_r($results);