Я программирую на PHP, и у меня есть эти массивы:
Массив категорий:
$type = array("fruit","veggie","other");
Массивы подкатегорий:
$fruit=array("apple","orange");
$veggie=array("bean","pea");
$other=array("bread","cake");
Я могу получить все элементы подкатегорий с:
$all_elements = array_merge($fruit,$veggie,$other);
Но у этого выражения есть проблема, что, если мне нужно создать новые категории, я должен переписать выражение.
Я хотел бы знать, как я могу получить выражение, подобное следующему, чтобы получить тот же результат:
$all_elements = array_merge(SOMETHING($type));
Заранее спасибо!!!!!
Взгляни на компактный:
compact — создать массив, содержащий переменные и их значения
Итак, вы хотите сделать:
$type = array("fruit","veggie","other");
$fruit=array("apple","orange");
$veggie=array("bean","pea");
$other=array("bread","cake");
print_r(compact(($type)));
ВЫХОД
Array
(
[fruit] => Array
(
[0] => apple
[1] => orange
)
[veggie] => Array
(
[0] => bean
[1] => pea
)
[other] => Array
(
[0] => bread
[1] => cake
)
)
Тем не менее, я рекомендую вам сделать это совершенно по-другому, как предложил @Rasclatt:
$food['fruit'][] = 'apple';
$food['fruit'][] = 'orange';
$food['veggie'][] = 'bean';
$food['veggie'][] = 'pea';
$food['other'][] = 'bread';
$food['other'][] = 'cake';
Я думаю, что я бы создал один массив, который вы можете добавить. Вы можете легко объединять и обрабатывать новые категории. Вы можете перебрать массив, чтобы получить типы и подтипы.
$food['fruit'][] = 'apple';
$food['fruit'][] = 'orange';
$food['veggie'][] = 'bean';
$food['veggie'][] = 'pea';
$food['other'][] = 'bread';
$food['other'][] = 'cake';
Я бы расположил данные по-другому:
$item["fruit"]=array("apple","orange");
$item["veggie"]=array("bean","pea");
$item["other"]=array("bread","cake");
Так что если вы хотите $all_elements
Вы могли бы просто попросить $item
вместо:
print_r ($item);
И если вы хотите определенную категорию:
print_r ($item["veggie"]);