Отсортировать многомерный массив по его ключам, а затем по его значениюPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Отсортировать многомерный массив по его ключам, а затем по его значению

Сообщение Anonymous »

Я хочу отсортировать двумерный массив, но его ключи и значения.
Массив такой

Array
(
[0] => Array
(
[Transport] => imagem3.png
)

[1] => Array
(
[Transport] => imagem2.png
)

[2] => Array
(
[Transport] => imagem1.png
)

[3] => Array
(
[First] => dscn2439.jpg
)

[4] => Array
(
[First] => dscn2454.jpg
)

[5] => Array
(
[First] => 06052010282.jpg
)

[6] => Array
(
[First] => dscn2357.jpg
)

[7] => Array
(
[Manufacture] => 120140220_191807.jpg
)

[8] => Array
(
[Manufacture] => 20140220_191429.jpg
)
)


Я отсортировал массив по его ключам, но я хочу создать такой массив




Я отсортировал по его ключам. Я не могу сортировать по значению, пожалуйста, помогите, что мне нужно сделать.

function getListPortfolio($params){

$dir ='./images/portfolio/';
// Open a directory, and read its contents
$folderArray=array();
$fileArray=array();
$extArray=array('.jpg', '.jpeg', '.png', '.gif');
if (is_dir($dir)){
if ($dh = opendir($dir)){
while (($subdir = readdir($dh)) !== false){
if(is_dir($dir.$subdir)){
if(!($subdir=='.' || $subdir=='..')){
$folderArray[]=$subdir;
}
}
}

arsort($folderArray);
foreach($folderArray as $key=>$value){
if($dhSub = opendir($dir.$value)){
while (($files = readdir($dhSub)) !== false){
$fileExists=$dir.$value.'/'.$files;
if(exif_imagetype($fileExists)){
if(is_file($fileExists)){
$fileArray[][$value]=$files;
}
}
}
}
}
closedir($dh);
}
}
return $fileArray;
}


Мне нужен ключ dir, а значение — файлы.

Решение:

function getListPortfolio($params){

$dir ='./images/portfolio/';
// Open a directory, and read its contents
$folderArray=array();
$fileArray=array();
$data=array();
$extArray=array('.jpg', '.jpeg', '.png', '.gif');
if (is_dir($dir)){
if ($dh = opendir($dir)){
while (($subdir = readdir($dh)) !== false){
if(is_dir($dir.$subdir)){
if(!($subdir=='.' || $subdir=='..')){
$folderArray[]=$subdir;
}
}
}

arsort($folderArray);
foreach($folderArray as $key=>$value){
if($dhSub = opendir($dir.$value)){
while (($files = readdir($dhSub)) !== false){
$fileExists=$dir.$value.'/'.$files;
if(exif_imagetype($fileExists)){
if(is_file($fileExists)){
$fileArray[]=$files;
}
}
}
asort($fileArray);
foreach($fileArray as $index=>$filename){
$data[][$value]=$filename;
}

}
}
closedir($dh);
}
}
return $fileArray;
}


Массив будет выглядеть так, и я хочу отсортировать массив [transport]=>imagem2.jpg ' по значению, а не [0] по этому индексу.

Array
( [0] => Array ( [Transport] => imagem1.png )

[1] => Array
(
[Transport] => imagem2.png
)

[2] => Array
(
[Transport] => imagem3.png
)

[3] => Array
(
[First] => dscn2357.jpg
)

[4] => Array
(
[First] => dscn2439.jpg
)

[5] => Array
(
[First] => dscn2454.jpg
)
)


Подробнее здесь: https://stackoverflow.com/questions/260 ... -its-value
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»