所以我仍然掌握PHP数组以及正确的方法。基本上我有一个产品,它有一组共享选项,但也有特定于模型的选项。现在我有这样的
$divers = array(
'models' => array("Launch 9.5","Launch 12.5","Launch 15.5", "Launch 18.5"),
'lengths' => array(47.5, 47, 46.5, 46, 45.5, 45, 44.5, 44, 43.5, 43, 42.5, 42),
);
所以每个模型都有相同的长度,但我也需要在模型中添加一个布尔值(true或false)。所以9.5会是真的,但12.5会是假的(基本上我们在9.5中有一个选项,但我们不在12.5)。我该怎么做?有没有更好的方法来设置阵列?我选择这种方式,所以我可以做foreach循环,吐出表单元素。
答案 0 :(得分:0)
如果所有模型都具有所有可用的length
值,您可能会这样:
$divers = array(
"Launch 9.5" => array(
"bool" => false,
"option" => true
),
"Launch 12.5" => array(
"bool" => false,
"option" => true
),
"Launch 15.5" => array(
"bool" => false,
"option" => true
)
);
$length = array(47.5, 47, 46.5, 46, 45.5, 45, 44.5, 44, 43.5, 43, 42.5, 42);
但如果不共享所有length
值(更有可能),您可能会这样:
$divers = array(
"Launch 9.5" => array(
"bool" => false,
"option" => true,
"length" => array( 47.5, 47, 50 )
),
"Launch 12.5" => array(
"bool" => false,
"option" => true,
"length" => array( 45, 43, 49 )
),
"Launch 15.5" => array(
"bool" => false,
"option" => true,
"length" => array( 46.5, 48, 50 )
)
);
措施是什么
在决定使用什么数组结构时要考虑的措施是:
<强>操纵强>
考虑一次可能需要使用多少数据,例如for
循环
<强>冗余强>
不要重复所有实体共享的数据
key => value
对
通常,您会使用for
或foreach
循环来循环遍历元素。您需要对key
和value
进行简单访问,因此请尽量不要使结构复杂化。
示例强>
foreach( $divers as $d_name => $d_value ){
echo $d_name; // Launch 9.5
echo $d_value['bool']; // false
}
答案 1 :(得分:0)
您可以使用已有的数组值作为数组键,然后添加一个布尔值作为值。
$divers = array(
'models' => array("Launch 9.5" => true,"Launch 12.5" => false,"Launch 15.5", "Launch 18.5"),
'lengths' => array(47.5, 47, 46.5, 46, 45.5, 45, 44.5, 44, 43.5, 43, 42.5, 42),
);
foreach($divers['models'] as $model) {
if($model === true) {
// do stuff
}
}