我正在用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));
提前致谢!!!!!
答案 0 :(得分:2)
查看 compact :
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';
答案 1 :(得分:1)
我想我会创建一个可以添加的数组。您可以更轻松地合并和处理新类别。您可以遍历数组以获取类型和子类型。
$food['fruit'][] = 'apple';
$food['fruit'][] = 'orange';
$food['veggie'][] = 'bean';
$food['veggie'][] = 'pea';
$food['other'][] = 'bread';
$food['other'][] = 'cake';
答案 2 :(得分:0)
我会以不同的方式布局数据:
$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"]);