从类别和子类别数组中获取数组中的所有元素

时间:2014-09-26 16:51:51

标签: php arrays categories

我正在用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));

提前致谢!!!!!

3 个答案:

答案 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"]);