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

Форум PHP

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

 

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

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

тема: Помогите отсортировать многомерный массив
 
 автор: absorber   (19.03.2008 в 21:31)   письмо автору
 
 

Привет всем! Помогите пожалуйста отсортировать массив.
В сам массив ключи заносятся так


// две разные переменные. Надо отсортировать по переменной $tsort_cost 
// но чтобы значение tsort_cost  и $content  сохранили отношения между собой

$news_content[][$tsort_cost] = $content;


// Если добавлять так (в массив значения добавляются в внутри цикла)
$news_content[$tsort_cost] = $content;
/*

может произойти затирание старого ключа, тк $tsort_cost не уникальный и может
повторяться. А затирание не желательно, 
или как то можно добавлять в массив, каждый раз новое значение
не затирая старого, тогда можно отсортировать было функцией asort();

*/



На выводе получается такое

Array(
[0] => Array ( [137997] => "тут каждый раз новый контент")
[1] => Array ( [132381] => "тут каждый раз новый контент")
[2] => Array ( [124578] => "тут каждый раз разное значение олдж")
[3] => Array ( [132354] => "тут каждый раз новый контент фыва")
)

Как отсортировать по [137997] [132381] вот этим ключам.

Помогите очень прошу!!!!

   
 
 автор: exp   (19.03.2008 в 22:43)   письмо автору
 
   для: absorber   (19.03.2008 в 21:31)
 

помоему удобнее формировать неассоциативный массив, с двумя значениями

и отсортировать можно по любому из них в любом порядке
<pre><?php

$array 
= array(123,234,123,234,456,123);
$array2 = array(1,2,3,4,5,6);
$out = array();

foreach(
$array AS $k => $v)
{
    
$out[] = array( $v$array2[$k]);
}
print_r($out);
?><hr>


<?

function cmp1($a$b// как буквы
{
    return 
strcmp($a[0], $b[0]);
}
function 
cmp2($a$b// как цифры 
{
    if (
$a[0] == $b[0]) {
        return 
0;
    }
    return (
$a[0] > $b[0]) ? -1;
}

usort($out"cmp2");
print_r($out);
?><hr>


<?
usort
($out"cmp1");
print_r($out);

?></pre>

   
 
 автор: absorber   (20.03.2008 в 00:03)   письмо автору
 
   для: exp   (19.03.2008 в 22:43)
 

Ооо даа!!! СПАСИБО ОГРОМНОЕ!
все получилось!

   
Rambler's Top100
вверх

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