powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php помогите отсортировать массив
25 сообщений из 26, страница 1 из 2
php помогите отсортировать массив
    #38364575
Nick-name
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сложно конечно но вот пример проясняющий ситуацию
Код: php
1.
2.
3.
4.
5.
6.
$arr1 = array(
array(1=>'a1',2=>'ab1',2=>'abc1'),
array(1=>'a1',2=>'abс3',3=>'abc1',4=>'ab1'),
array(1=>'a1',2=>'abсс2,3=>'ab',4=>'abсв1'));
//и второй массив
$arr1 = array(1=>'abс3',2=>'a1',3=>'abc1');


Ну и вот нужно отсортировать первый массив так, чтобы порядок вложенных массивов выстроился в сответствии с расположением, значений элементов второго массива
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38364634
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38364793
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nick-nameсложно конечно но вот пример проясняющий ситуацию
Код: php
1.
2.
3.
4.
5.
6.
$arr1 = array(
array(1=>'a1',2=>'ab1',2=>'abc1'),
array(1=>'a1',2=>'abс3',3=>'abc1',4=>'ab1'),
array(1=>'a1',2=>'abсс2,3=>'ab',4=>'abсв1'));
//и второй массив
$arr1 = array(1=>'abс3',2=>'a1',3=>'abc1');


Ну и вот нужно отсортировать первый массив так, чтобы порядок вложенных массивов выстроился в сответствии с расположением, значений элементов второго массива

А вот я нифига не понял :). По какому принципу должны выстроиться эти массивы (и вообще, должны выстроиться сами массивы, или всё-таки их элементы)?

ScareCrow, прям неловко говорить, но Ваша функция не подходит, ни при каком из возможных раскладов :) Дело в том, что она умеет сортировать только в порядке возрастания или спадания значений. А ТС хоть и не объяснил что ему надо отсортировать и по какому принципу, но явно дал понять, что порядок должен быть задан вручную, с помощью другого массива.
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38364932
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторзадан вручную, с помощью другого массива.
смотрим Example #3 и Example #4
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38365050
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowавторзадан вручную, с помощью другого массива.
смотрим Example #3 и Example #4

#3 - сортировка массивов в массиве по возрастанию одного из элементов вложенных массивов
#4 - регистронезависимая сортировка по возрастанию .

Говорю же, только по возрастанию и убыванию. В данном случае (с случайным порядком элементов) без дополнительных танцев неприменимо (нужны циклы и другое).

Если уж так, тогда лучше использовать usort или uasort. Но автор так и не написал, что ему нужно, потому и эти функции в итоге могут быть не тем, что надо.
usort смотрим пример 3 и 4. Хотя #3 удобнее и более общий... так можно отсортировать всё что угодно и в любом порядке.
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38365078
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор#4 - регистронезависимая сортировка по возрастанию.
ну тоесть разбираться в примерах вы отказываетесь?
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38365093
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nick-nameсложно конечно но вот пример проясняющий ситуацию
Код: php
1.
2.
3.
4.
5.
6.
$arr1 = array(
array(1=>'a1',2=>'ab1',2=>'abc1'),
array(1=>'a1',2=>'abс3',3=>'abc1',4=>'ab1'),
array(1=>'a1',2=>'abсс2,3=>'ab',4=>'abсв1'));
//и второй массив
$arr1 = array(1=>'abс3',2=>'a1',3=>'abc1');



Ну и вот нужно отсортировать первый массив так, чтобы порядок вложенных массивов выстроился в сответствии с расположением, значений элементов второго массиваМожно показать, что должно получиться в итоге?

PS: Почему то в этом примере оба массива присвоены одной и той же переменной.
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38365177
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowавтор#4 - регистронезависимая сортировка по возрастанию.
ну тоесть разбираться в примерах вы отказываетесь?

аппъяяяять

Ок, Ваш вариант... что делает пример 4?
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38365411
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowавтор#4 - регистронезависимая сортировка по возрастанию.
ну тоесть разбираться в примерах вы отказываетесь?

продолжаю ждать Ваш вариант описания работы данного примера. Что бы не повадно было говорить, что я чего-то не делаю или не понимаю (а то каждый раз одно и то же).
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38366243
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрScareCrowпропущено...

ну тоесть разбираться в примерах вы отказываетесь?

продолжаю ждать Ваш вариант описания работы данного примера. Что бы не повадно было говорить, что я чего-то не делаю или не понимаю (а то каждый раз одно и то же).

и как всегда ответа нету. За свои слова никак не отвечаете, только участников форума вводите в заблуждение, когда им отвечают верно, а Вы вмешиваетесь со своим "да вы ни... не шарите, смотрите как я умею ссылки на форуме вставлять", а потом стараетесь выставить дураком того, кто говорит, что Вы фигню написали.

сорвался
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38366354
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowавторзадан вручную, с помощью другого массива.
смотрим Example #3 и Example #4
ScareCrowавтор#4 - регистронезависимая сортировка по возрастанию.
ну тоесть разбираться в примерах вы отказываетесь?
Таки присоединюсь к предложению Програмёра запостить сюда Ваш код, использующий оную функцию. Мне тоже очень интересно взглянуть.


Програмёри как всегда ответа нету. За свои слова никак не отвечаете, только участников форума вводите в заблуждение, когда им отвечают верно, а Вы вмешиваетесь со своим "да вы ни... не шарите, смотрите как я умею ссылки на форуме вставлять", а потом стараетесь выставить дураком того, кто говорит, что Вы фигню написали.

сорвался Давайте будем терпимы и подождем код, который Скаря скоро покажет. Надеюсь
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38366399
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
постановка задачи.
от ТС

авторНу и вот нужно отсортировать первый массив так, чтобы порядок вложенных массивов выстроился в сответствии с расположением, значений элементов второго массива

Моя - отсортировать многомерный массив по одной из размерностей.

пример - дан массив городов, с расстоянием их от Москвы. отсортировать по удаленности от оной.
мой код цифры случайны:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
<?php
$data = array(

  array(
        'city'=>'Орёл',
        'distance' => 200,
    ),
    array(
        'city'=>'Курск',
        'distance' => 500,
    ),
    array(
        'city'=>'ТУла',
        'distance' => 100,
    ),
    array(
        'city'=>'Харьков',
        'distance' => 800,
    ),

    array(
        'city'=>'Белгород',
        'distance' => 600,
    ),


);
    foreach ($data as $key => $row) {
        $distance[$key] = $row['distance'];
    }

    array_multisort($distance, SORT_ASC, $data);
var_dump($data);




пример номер 4 на который было показзано с самого начала:

Код: php
1.
2.
3.
4.
5.
6.
7.
<?php
$array = array('Alpha', 'atomic', 'Beta', 'bank');
$array_lowercase = array_map('strtolower', $array);

array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $array);

print_r($array);



пример №4 м моем варианте - дан массив городов, отсортировать их по названию

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
<?php
$data = array(

  array(
        'city'=>'Орёл',
        'distance' => 200,
    ),
    array(
        'city'=>'Курск',
        'distance' => 500,
    ),
    array(
        'city'=>'ТУла',
        'distance' => 100,
    ),
    array(
        'city'=>'Харьков',
        'distance' => 800,
    ),

    array(
        'city'=>'Белгород',
        'distance' => 600,
    ),


);
    foreach ($data as $key => $row) {
        $name[$key] = $row['city'];
    }

    array_multisort($name, SORT_ASC, $data);
var_dump($data);
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38366431
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowпостановка задачи.
от ТС

авторНу и вот нужно отсортировать первый массив так, чтобы порядок вложенных массивов выстроился в сответствии с расположением, значений элементов второго массива


Моя - отсортировать многомерный массив по одной из размерностей.

пример - дан массив городов, с расстоянием их от Москвы. отсортировать по удаленности от оной.
мой код цифры случайны:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
<?php
$data = array(

  array(
        'city'=>'Орёл',
        'distance' => 200,
    ),
    array(
        'city'=>'Курск',
        'distance' => 500,
    ),
    array(
        'city'=>'ТУла',
        'distance' => 100,
    ),
    array(
        'city'=>'Харьков',
        'distance' => 800,
    ),

    array(
        'city'=>'Белгород',
        'distance' => 600,
    ),


);
    foreach ($data as $key => $row) {
        $distance[$key] = $row['distance'];
    }

    array_multisort($distance, SORT_ASC, $data);
var_dump($data);




пример номер 4 на который было показзано с самого начала:

Код: php
1.
2.
3.
4.
5.
6.
7.
<?php
$array = array('Alpha', 'atomic', 'Beta', 'bank');
$array_lowercase = array_map('strtolower', $array);

array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $array);

print_r($array);



пример №4 м моем варианте - дан массив городов, отсортировать их по названию

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
<?php
$data = array(

  array(
        'city'=>'Орёл',
        'distance' => 200,
    ),
    array(
        'city'=>'Курск',
        'distance' => 500,
    ),
    array(
        'city'=>'ТУла',
        'distance' => 100,
    ),
    array(
        'city'=>'Харьков',
        'distance' => 800,
    ),

    array(
        'city'=>'Белгород',
        'distance' => 600,
    ),


);
    foreach ($data as $key => $row) {
        $name[$key] = $row['city'];
    }

    array_multisort($name, SORT_ASC, $data);
var_dump($data);



решённая Вами задача не соответствует задаче автора (а мы обсуждаем её, а не Вашу, о которой даже никто не знает). Задача автора больше похожа на "Есть список стран. Расположить их в том же порядке, в котором во втором массиве расположены столицы этих стран".

Итак, Вы снова расположили элементы в порядке возростания, а надо в произвольном. Решите задачу, которую привёл автор (или аналогичную, которую я написал).
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38366436
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автора надо в произвольном
еще аргументы будут?
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38366437
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если вы не можете свести эту задачу к "отсортировать многомерный массив по одной из размерностей" то дальнейший разговор теряет смысл.

задача "расположили элементы массива произвольном порядке" в решении не нуждается, ибо любой порядок элементов, даже сортированный, является случайным и может возникнуть с какойто вероятностью.
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38366441
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrow,

Но автору нужна сортировка не по возрастанию или алфавиту. Второй массив указывает как раз порядок сортировки первого массива. Полагаю, нечто похожее на мускулевое
Код: sql
1.
... ORDER BY `field` IN ('abс3', 'a1', 'abc1')

Однако, топикстартер чего-то не торопится уточнить условия задачи. А то что есть, можно понимать двояко. Предположу еще вариант: в начало поставить элементы первого массива с максимальным количеством соответствий элементам второго.
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38366449
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор Предположу еще вариант: в начало поставить элементы первого массива с максимальным количеством соответствий элементам второго.
это тоже достаточно просто сводится к моей. надо только посчитать меру схожести в первый массив, переданный в мультисорт.
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38366450
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
родили новй термин:
автор[16:23:02] Уберукс: сортировка монте-карло? :)
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38366457
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВторой массив указывает как раз порядок сортировки первого массива.
именно это делает первый массив переданный вы array_multisort
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38366477
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowавторВторой массив указывает как раз порядок сортировки первого массива.
именно это делает первый массив переданный вы array_multisort

ну пишите... пишите... на словах всё круто ) "да я могу, в чём вопрос... только тут цикл... тут цикл... тут пересортировать немного". Я без проблем сфарганю с usort или uasort всё, что надо. Но заверяю, что Вы не сделаете этого с помощью приведённой Вами функции. ))
vkle предложил посчитать количество элементов (что сложнее, но с usort решается без проблем), я же предлагаю даже проще вариант... просто отсортировать вложенные массивы... ну, задачу описал уже.... если сможете - решите, а не сможете - тогда может хоть думать будете, перед тем как сказать что кто-то неправ (ладно бы что-то типа "Вы не правы, это работает так...", а то "разбираться не собираетесь?". это просто уже нагло, я себе такого не позволяю, хотя опыт позволяет, просто я знаю, что попадётся человек опытнее меня и осадит меня на счёт раз-два).
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38366481
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторэто просто уже нагло, я себе такого не позволяю, хотя опыт позволяет, просто я знаю, что попадётся человек опытнее меня и осадит меня на счёт раз-два).
дальнейший разговор потерял уже даже остатки смысла.
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38366482
tanur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, задание интуитивно понятно. Но ваш пример неполон.
Опишите правило, согласно которому располагаются эл-ты в массиве-основе.
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38366490
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowавторэто просто уже нагло, я себе такого не позволяю, хотя опыт позволяет, просто я знаю, что попадётся человек опытнее меня и осадит меня на счёт раз-два).
дальнейший разговор потерял уже даже остатки смысла.

примера не будет?
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38366546
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор:
ScareCrowдальнейший разговор потерял уже даже остатки смысла.
Этот разговор изначально не имел большого смысла, так как толкование задачи весьма неоднозначно. Каждый из участников понял ее по-своему в меру своей фантазии. Возможно, Ваше толкование условий задачи весьма сильно отличается от понятого Программёром. Если оно так и есть, то вы решали _разные_ задачи.

На будущее: прошу воздержаться от вызывающих конфликт высказываний, вроде этого:ScareCrowну тоесть разбираться в примерах вы отказываетесь? Замечу, что это далеко не первый случай подобных реплик с Вашей стороны. Предлагаю излагать Ваше видение/понимание задачи и предложенного решения.

Програмёрпримера не будет? Не надо уже провоцировать бессмысленный спор.
...
Рейтинг: 0 / 0
php помогите отсортировать массив
    #38366589
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkleScareCrow,

Но автору нужна сортировка не по возрастанию или алфавиту. Второй массив указывает как раз порядок сортировки первого массива. Полагаю, нечто похожее на мускулевое
Код: sql
1.
... ORDER BY `field` IN ('abс3', 'a1', 'abc1')



Задача решена ?
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php помогите отсортировать массив
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]