ReP*_*Pho 6 php multidimensional-array
我有以下数组结构:
Array
(
[0] => Array
(
[product_option_id] => 236
[option_id] => 14
[name] => Masura S
[type] => select
[option_value] => Array
(
[0] => Array
(
[product_option_value_id] => 33
[option_value_id] => 53
[name] => Alb
[price] =>
[price_prefix] => +
)
[1] => Array
(
[product_option_value_id] => 35
[option_value_id] => 55
[name] => Rosu
[price] =>
[price_prefix] => +
)
)
[required] => 0
)
[1] => Array
(
[product_option_id] => 237
[option_id] => 15
[name] => Masura M
[type] => select
[option_value] => Array
(
[0] => Array
(
[product_option_value_id] => 34
[option_value_id] => 58
[name] => Rosu
[price] =>
[price_prefix] => +
)
)
[required] => 0
)
)
我发现自己在尝试显示此数组中的所有[name]值时迷失了方向.
我想要做的是使用基于第一级[name](如[name] => Masura S)的下拉选择填充表单,然后使用第二级[name](如[name] => Alb)选择第二个下拉选择.
如果您有任何指示,我将不胜感激......
小智 6
你可以用这种方式填充第一个选择:
<select>
<?php $c=count($array);
for ( $i=0; $i < $c; $i++)
{ ?>
<option><?php echo $array[$i]['name'];?></option>
<?php } ?>
</select>
Run Code Online (Sandbox Code Playgroud)
第二选:
<select>
<?php
for ( $i=0; $i < $c; $i++)
{
$c2=count($array[$i]);
for ($j=0;$j<$c2;$j++){
?>
<option><?php echo $array[$i][$j]['name'];?></option>
<?php }} ?>
</select>
Run Code Online (Sandbox Code Playgroud)
我会像这样将名称分开以分隔数组,之后应该很容易根据需要填充下拉列表:
$product_names = $option_names = array();
foreach ($products as $index => $product) {
$product_names[$index] = $product['name'];
foreach ($product['option_value'] as $option) {
$option_names[$index][] = $option['name'];
}
}
Run Code Online (Sandbox Code Playgroud)
当您想要数组索引 0 的产品名称时,您可以使用 $product_names[0](一个字符串)并且可以从 $option_names[0](一个数组)中找到该产品的选项名称。
上面的代码不关心现有的 ID,所以如果你需要它们用于表单,你需要更多地扩展代码。