Сортировать 2D -массив с помощью столбца, не сохраняя клавиши первого уровняPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Сортировать 2D -массив с помощью столбца, не сохраняя клавиши первого уровня

Сообщение Anonymous »

Я пытаюсь сортировать этот ассоциативный массив в PHP, сортируя по имени поля < /code> < /p>

$fonts = array(
0 => ["index" => 0, "name" => "Arial", "path" => "assets/fonts/arial.ttf"],
1 => ["index" => 1, "name" => "Times", "path" => "assets/fonts/times.ttf"],
2 => ["index" => 2, "name" => "Roboto", "path" => "assets/fonts/roboto.ttf"],
3 => ["index" => 3, "name" => "AlexBrush", "path" => "assets/fonts/AlexBrush-Regular.ttf"],
);
< /code>

То, что я пытаюсь сделать, это сортировать записи по имени, но сохранить ключи, связанные с самой записью, так что я хочу: < /p>
$fonts = array(
3 => ["index" => 3, "name" => "AlexBrush", "path" => "assets/fonts/AlexBrush-Regular.ttf"],
0 => ["index" => 0, "name" => "Arial", "path" => "assets/fonts/arial.ttf"],
2 => ["index" => 2, "name" => "Roboto", "path" => "assets/fonts/roboto.ttf"],
1 => ["index" => 1, "name" => "Times", "path" => "assets/fonts/times.ttf"],
);
< /code>

Вот минимальный код, который раскрывает проблему (php ver +7): < /p>

function cmp($a, $b)
{
return strcmp($a["name"], $b["name"]);
}

$fonts = array(
0 => ["index" => 0, "name" => "Arial", "path" => "assets/fonts/arial.ttf"],
1 => ["index" => 1, "name" => "Times", "path" => "assets/fonts/times.ttf"],
2 => ["index" => 2, "name" => "Roboto", "path" => "assets/fonts/roboto.ttf"],
3 => ["index" => 3, "name" => "AlexBrush", "path" => "assets/fonts/AlexBrush-Regular.ttf"],
);

uasort($fonts, "cmp");

for($i = 0; $i < 4; $i++)
{
echo "
".$fonts[$i]["name"];
}
< /code>

Я использую uasort () < /code>, так как он должен держать ключи, связанные при сортировке массива. К сожалению, если я распечатаю массив, я получаю тот же заказ, то есть < /p>

Arial
Times
Roboto
AlexBrush


Подробнее здесь: https://stackoverflow.com/questions/530 ... level-keys
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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