[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сортировка массива
Nuzhser
Как отсортировать многоуровневый массив?


По первому ключу

$arraray[$frog][$vr][$peremennaya][0]


С этим понятно пожайлуста читайте сразу с 16 февраля пост что внизу страницы



Спустя 33 минуты, 32 секунды (2.02.2012 - 11:02) bob marley написал(а):
Что нужно? huh.gif
Объясни подробно, что ты хочешь..

Спустя 3 минуты, 42 секунды (2.02.2012 - 11:06) Игорь_Vasinsky написал(а):
array_multisort() ?

Спустя 5 минут, 53 секунды (2.02.2012 - 11:12) bob marley написал(а):
for($i=0;$i<count($arraray[$frog]);$i++)
{echo $arraray[$frog][$vr][$peremennaya][$i];}

так?

Спустя 1 минута (2.02.2012 - 11:13) Игорь_Vasinsky написал(а):
а где у тя сортировка то?

Спустя 2 минуты, 15 секунд (2.02.2012 - 11:15) bob marley написал(а):
Игорь_Vasinsky
А куда сортировать то?заместо echo поставить там да и се

Спустя 53 секунды (2.02.2012 - 11:16) Игорь_Vasinsky написал(а):
Цитата
Как отсортировать многоуровневый массив?


По первому ключу

Спустя 1 минута, 8 секунд (2.02.2012 - 11:17) bob marley написал(а):
Игорь_Vasinsky
huh.gif
вот как раз то что ты цитировал я и не понял unsure.gif

Спустя 21 секунда (2.02.2012 - 11:17) Игорь_Vasinsky написал(а):
array_multisort($arraray[$frog], SORT_ASC, SORT_STRING);

???? так?

Спустя 1 час, 29 минут, 8 секунд (2.02.2012 - 12:47) neadekvat написал(а):
Цитата (bob marley @ 2.02.2012 - 12:02)
Что нужно?

Что, опять? Короткая же у тебя память, однако.

Спустя 11 часов, 31 минута (3.02.2012 - 00:18) Nuzhser написал(а):
ну вот есть масив $arraray в него вкладываются другие масивы $frog. Они имеют внутри себя еще внутренныие массивы но мне надо чтобы сортировка проводилась именно по них. То есть если сам $frog(не его внутренности а ключ) у меня будет иметь такие варианты - Зелень Овощи Ягоды Мясо чтобы эти ключи были в порядке по алфавиту. Можно и на английском это не существенно все равно это просто для обозначения. А дальше после сортировки в цикле идет уже доступ ко вложенным массивам данных и отправляеться в броузер в базу и ексель.


$arraray[$frog][$vr][$peremennaya][0]

Спустя 14 часов, 45 минут, 50 секунд (3.02.2012 - 15:03) walerus написал(а):
Если я все правильно понял.

$array = array(); // Главный массив

// $frog - варианты ( 'Зелень', 'Овощи', 'Ягоды', 'Мясо' )

// Добавили варианты $frog и дополнительные внутренние массивы как в примере

$array['Зелень'] = array( 'vr' => array( 'peremennay' => array('что то тут про зелень' ) ) );
$array['Овощи'] = array( 'vr' => array( 'peremennay' => array('что то тут про овощи' ) ) );
$array['Ягоды'] = array( 'vr' => array( 'peremennay' => array('что то тут про ягоды' ) ) );
$array['Мясо'] = array( 'vr' => array( 'peremennay' => array('что то тут про мясо') ) );


echo "<pre>";
print_r( $array); // Вывод массива
echo "</pre>";

asort( $array ); // Соритровка сохраняя ключи
echo "<pre>";
print_r( $array);// Вывод отсортированного массива
echo "</pre>";


Результат.
Свернутый текст


Array
(
[Зелень] => Array
(
[vr] => Array
(
[peremennay] => Array
(
[0] => что то тут про зелень
)

)

)

[Овощи] => Array
(
[vr] => Array
(
[peremennay] => Array
(
[0] => что то тут про овощи
)

)

)

[Ягоды] => Array
(
[vr] => Array
(
[peremennay] => Array
(
[0] => что то тут про ягоды
)

)

)

[Мясо] => Array
(
[vr] => Array
(
[peremennay] => Array
(
[0] => что то тут про мясо
)

)

)

)

Array
(
[Зелень] => Array
(
[vr] => Array
(
[peremennay] => Array
(
[0] => что то тут про зелень
)

)

)

[Мясо] => Array
(
[vr] => Array
(
[peremennay] => Array
(
[0] => что то тут про мясо
)

)

)

[Овощи] => Array
(
[vr] => Array
(
[peremennay] => Array
(
[0] => что то тут про овощи
)

)

)

[Ягоды] => Array
(
[vr] => Array
(
[peremennay] => Array
(
[0] => что то тут про ягоды
)

)

)
)


Спустя 1 день, 2 часа, 59 минут, 56 секунд (4.02.2012 - 18:03) Nuzhser написал(а):
Вроде все blink.gif верно

Спустя 11 дней, 21 час, 6 минут, 36 секунд (16.02.2012 - 15:10) Nuzhser написал(а):
Пишу здесь снова чтобы развить тему
Как отсортировать массив что ниже так чтобы сортировка шла по отдельности внутри каждого цвета по цифровому значению ключа ['number']
$main = array (
'yellow' => array(
0=>array( 'value'=>'sometext', 'number'=>35),
1=>array( 'value'=>'sometext', 'number'=>7),
2=>array( 'value'=>'sometext', 'number'=>254),
3=>array( 'value'=>'sometext', 'number'=>14)
),

'white' => array(
0=>array( 'value'=>'sometext', 'number'=>98),
1=>array( 'value'=>'sometext', 'number'=>56)
),

'green' => array(
0=>array( 'value'=>'sometext', 'number'=>64),
1=>array( 'value'=>'sometext', 'number'=>71),
2=>array( 'value'=>'sometext', 'number'=>24),
3=>array( 'value'=>'sometext', 'number'=>4),
4=>array( 'value'=>'sometext', 'number'=>22)
)
);

Спустя 6 часов, 33 минуты, 5 секунд (16.02.2012 - 21:43) Nuzhser написал(а):
За что люблю этот форум это за то что даже если никто и не отпишет чувствуется поддержка ))
Так получилось
function compareMid($a, $b)
{
if ($a['number'] == $b['number']) {
return 0;
}
return ($a['number'] < $b['number']) ? -1 : 1;
}


foreach($main as $key => $value) {



uasort($main[$key], 'compareMid');
}

Спустя 13 минут, 52 секунды (16.02.2012 - 21:57) sergeiss написал(а):
Цитата (Nuzhser @ 16.02.2012 - 22:43)
даже если никто и не отпишет чувствуется поддержка ))

Есть такое дело smile.gif Потому что когда пишешь вопрос, то лучше, чётче его формулируешь. А как известно, правильно поставленный вопрос - это половина решения.

Спустя 3 часа, 46 минут, 9 секунд (17.02.2012 - 01:43) walerus написал(а):
Nuzhser тоже свои 5ть копеек )))

Добавил циферы к sometext :P


$main = array (
'yellow' => array(
array( 'value' => 'sometext_35', 'number' => 35 ),
array( 'value' => 'sometext_7', 'number' => 7 ),
array( 'value' => 'sometext_254', 'number' => 254 ),
array( 'value' => 'sometext_14', 'number' => 14 )
),

'white' => array(
array( 'value' => 'sometext_98', 'number' => 98),
array( 'value' => 'sometext_56', 'number' => 56)
),

'green' => array(
array( 'value' => 'sometext_64', 'number' => 64),
array( 'value' => 'sometext_71', 'number' => 71),
array( 'value' => 'sometext_24', 'number' => 24),
array( 'value' => 'sometext_4', 'number' => 4),
array( 'value' => 'sometext_22', 'number' => 22)
)
);


foreach($main as $main_key => $main_value)
{
$value = array();
$number = array();
foreach( $main[$main_key] as $main_value )
{
$value[] = $main_value['value'];
$number[] = $main_value['number'];
}

asort($number);
$main[$main_key] = array();
foreach( $number as $number_key => $number_value )
$main[$main_key][] = array( 'value' => $value[$number_key], 'number' => $number_value);
}

print_r($main);


_____________
Лэт ит би
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.