Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сортировка двухмерного массива
 
 автор: Ури Геллер   (11.03.2010 в 21:05)   письмо автору
 
 

Я покажу как делаю я, а мне скажите может есть способ попроще.

<?php

$array
[0]["имя"] = "Миша";
$array[0]["фамилия"] = "Евдокимов";
$array[1]["имя"] = "Владимир";
$array[1]["фамилия"] = "Путин";
$array[2]["имя"] = "Борис";
$array[2]["фамилия"] = "Моисеев";

echo 
"<pre>";

print_r($array);

// сортируем по именам

foreach ($array as $k => $v) {
    
$names[$v["имя"]] = $k;
}

ksort($names);
print_r($names);

foreach(
$names as $v) {
    
$sorted_by_name[] = $array[$v];
}

print_r($sorted_by_name);

echo 
"</pre>";


?>


На выходе:


Array
(
    [0] => Array
        (
            [имя] => Миша
            [фамилия] => Евдокимов
        )

    [1] => Array
        (
            [имя] => Владимир
            [фамилия] => Путин
        )

    [2] => Array
        (
            [имя] => Борис
            [фамилия] => Моисеев
        )

)
Array
(
    [Борис] => 2
    [Владимир] => 1
    [Миша] => 0
)
Array
(
    [0] => Array
        (
            [имя] => Борис
            [фамилия] => Моисеев
        )

    [1] => Array
        (
            [имя] => Владимир
            [фамилия] => Путин
        )

    [2] => Array
        (
            [имя] => Миша
            [фамилия] => Евдокимов
        )

)

  Ответить  
 
 автор: exp   (11.03.2010 в 21:29)   письмо автору
 
   для: Ури Геллер   (11.03.2010 в 21:05)
 

bool usort ( array &$array , callback $cmp_function )

Example #2 usort() example using multi-dimensional array
<?php
function cmp($a$b)
{
    return 
strcmp($a["fruit"], $b["fruit"]);
}

$fruits[0]["fruit"] = "lemons";
$fruits[1]["fruit"] = "apples";
$fruits[2]["fruit"] = "grapes";

usort($fruits"cmp");

while (list(
$key$value) = each($fruits)) {
    echo 
"\$fruits[$key]: " $value["fruit"] . "\n";
}
?>

  Ответить  
 
 автор: Ури Геллер   (11.03.2010 в 21:50)   письмо автору
 
   для: exp   (11.03.2010 в 21:29)
 

что функции пользовательской сортировки существуют я знаю, вопрос не в том. Мне не нравятся эти промежуточные массивы и прочее.

  Ответить  
 
 автор: Ури Геллер   (11.03.2010 в 22:18)   письмо автору
 
   для: Ури Геллер   (11.03.2010 в 21:50)
 

хуй войне

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования