Php 具有附加布尔值的多维数组
因此,我仍然掌握了PHP数组以及正确的方法。基本上,我有一个产品,它有一组共享选项,但也有特定于模型的选项。现在我有这样的Php 具有附加布尔值的多维数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,因此,我仍然掌握了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
$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循环,从而吐出表单元素 如果所有型号都有所有可用的
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);
$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 )
)
);
但是,如果不共享所有长度值(更有可能),您可能会有以下情况:
$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);
$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
循环中
- 冗余
不要重复所有实体共享的数据
键=>值
对
通常有一个for
或foreach
循环,用于循环元素。在那里,您需要有一个对键
s和值
s的简单访问权限,因此尽量不要使您的结构复杂化
示例
foreach( $divers as $d_name => $d_value ){
echo $d_name; // Launch 9.5
echo $d_value['bool']; // false
}
您可以使用已有的数组值作为数组键,然后添加一个布尔值作为值
$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
}
}
那么问题是什么呢?如果你需要的话,加上那些布尔值。”型号'=>阵列(“启动9.5”=>正确,“启动12.5”=>错误,“启动15.5”=>正确,“启动18.5”=>错误)。或者我误解了你?我不知道我可以加上它。要访问bool,我是否只需使用$divers[models][
?要访问这些bool,您应该提供您想要访问的密钥:例如$divers['models']['Launch 9.5']将返回true(例如我在第一条评论中的示例)$divers['models']['Launch 12.5']将返回false是的,可以!但是我现在如何访问“Launch9.5”来响应这个名称呢?在我的循环中,$model
返回名称之前,现在它只返回一个键。@Packy这个问题的解决方案在我的答案中介绍,在这里你可以访问名称,比如我使用的foreach示例中的“lauch 9.5”@Packy,使用as$name=>$value
而不是as$model
,你可以访问这两个名称。