Я пытаюсь реорганизовать массив PHP (на странице WordPress). Мой сайт был закодирован кем-то другим, и я пытаюсь улучшить ситуацию. Я думаю, что они делали что-то непонятное (плохое использование категорий). Вместо того, чтобы перекодировать весь сайт, я хотел посмотреть, сможет ли кто-нибудь помочь мне решить проблему.Как отсортировать сложный массив PHP
Итак, в основном, у меня есть массив внутри массива. Список категорий, и каждая категория содержит конкретные данные. Я называю категории, основанные на его родительском. Мне нужно реорганизовать список/массив категорий, чтобы они могли распечатываться в том порядке, в котором они мне нужны.
$cat_tree = get_category_parents(wt_get_category_ID(), FALSE, ':', TRUE);
$top_cat = split(':',$cat_tree);
$parent = $top_cat[0];
$idObj = get_category_by_slug($parent);
$args = array(
'child_of' => $idObj->term_id,
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => 0);
$counter_c=1;
$categories = get_categories($args);
if($counter_c == 1) $counter_c = '';
foreach ($categories as $category) {
?>
<div> this is where each category array info gets printed... information goes:<br />
Name: <?=$category->cat_name ?> (<?=$category->cat_ID ?>)
</div>
<?php if($counter_c == '') $counter_c = 1; $counter_c++; } // Reset Query
wp_reset_query();
?>
На одной странице $ cat_tree выходы «развлечение: актеры:».
$ Родитель или $ Topcat [0] выводит "развлечение"
$ Topcat [1] выводит "актер"
Когда "Еогеасп" работает, я получаю список, отсортированный по идентификатору .. .
- Актеры (13)
- художников (14)
- директоров (25)
- Авторы (26)
- диджеев (35)
мне нужно реорганизовать этот список в определенном порядке. Каждая страница отличается. Поэтому мне, возможно, придется перестраивать список по-разному для каждой страницы. Я, возможно, потребуется ...
- Авторов (26)
- Актеры (13)
- диджеев (35)
- художников (14)
- директоров (25)
Итак, мне нужен способ сделать это. Я подумал, что, может быть, я мог бы сказать «если» на странице «актер», сдвинуть «Writers» до конца массива (я знаю, что есть какой-то способ сделать это), а затем свернуть актеров до конца, затем DeeJays, затем Художники, затем директора. Затем запустите foreach.
Или, если страница - это что-то еще, я могу переместить другие элементы в конец массива. Это кажется немного, но это единственная работа, о которой я мог думать. Конечно, мои знания php ограничены, поэтому любая помощь ценится.
Как насчет массива ввода образцов и списка четких правил сортировки? – Josh
Ну, так как вы не будете делать что-то вроде сортировки в алфавитном или цифровом виде по ID (как в вашем втором примере), я не уверен, что многое может сделать PHP, чтобы помочь. Для меня это похоже на обычай ... – enygma