我想管理我的阵列,但我不知道该怎么做。
我的基本数组
$table = array(
'color' => array('white', 'red'),
'size' => array('37', '38'),
'other' => array('a', 'b'),
);
我想要回归:
$table = array(
'color' => array(
'white' => array(
'size' => array(
'37' => array(
'other' => array('a', 'b')
),
'38' => array(
'other' => array('a', 'b')
),
)
),
'red' => array(
'size' => array(
'37' => array(
'other' => array('a', 'b')
),
'38' => array(
'other' => array('a', 'b')
),
)
)
)
);
它只是一个简单的表,我想创建一个代码来渲染第二或第四个表。 我希望有人可以帮助我。 我知道表中有多少键很多深度。
答案 0 :(得分:0)
您可以使用嵌套的foreach
循环来完成您要查找的内容。
答案 1 :(得分:0)
以下是您的问题的解决方案:
$table = array(
'color' => array('white', 'red'),
'size' => array('37', '38'),
'other' => array('a', 'b'),
);
function myfunc($table){
foreach($table as $k=>$v){
if($k == 'color'){
foreach($v as $color){
$result['color'][$color]= array() ;
}
}elseif($k == 'size'){
foreach($v as $size){
foreach($result['color'] as $colorKey => $colorName){
$result['color'][$colorKey]['size'][$size] = $table['other'];
}
}
}
}
return $result;
}
$result = myfunc($table);
echo "<pre>";
print_r($result);
Out put:
答案 2 :(得分:0)
谢谢你的帮助,但对我来说并没有解决。
我想在商店中为产品创建属性。用户可以定义自己的属性并将其生成为产品。
问题是管理员可以为产品(使用自己的名字)生成一个,两个或更多属性,并且他可以设置是否设置了attr combine。
例如,如果我们要卖鞋子,我们可以(对于产品): 尺寸:38,37,36和颜色:红色,白色
现在admin生成所有组合: 38 - 红色 37 - 红色 36 - 红色 38 - 白色 37 - 白色 36 - 白色
现在他可以禁用/启用或设置合并计数(例如36红= 2对或禁用(不卖))。
我认为首先我必须反转表并将所有下一个表保存到temt。从后面的下一个构建表。