如何将数组键和值附加到html元素?

时间:2018-06-28 15:40:04

标签: php arrays multidimensional-array

我有一个类似于以下的数组输出:

Array
(
    [DPPSI_1_50_min] => 11
)
1
Array
(
    [DPPSI_2_40_min] => 10
)
1
Array
(
    [DPPSI_3_30_min] => 9
)
1
Array
(
    [DPPSI_4_20_min] => 8
)
1
Array
(
    [DPPSI_5_10_min] => 6.1
)
1
Array
(
    [DPPSI_6_0_min] => 3.77
)
1
Array
(
    [DPPSI_1_50_min] => 14
)
1
Array
(
    [DPPSI_2_40_min] => 15
)
1
Array
(
    [DPPSI_3_30_min] => 16
)
1
Array
(
    [DPPSI_4_20_min] => 17
)
1
Array
(
    [DPPSI_5_10_min] => 18
)
1
Array
(
    [DPPSI_6_0_min] => 19
)
1

我需要做的是将这些附加到html data- *属性。像这样:

<select data-DDPSI_6_0_min="19">

执行此操作的最佳方法是什么?我已经看到了爆破功能以及http_build_query方法。 http_build_query让我超级接近,但是我剩下了一堆看起来像这样的编码字符:

0%5BDPPSI_1_50_min%5D=11 1%5BDPPSI_2_40_min%5D=10 2%5BDPPSI_3_30_min%5D=9 
3%5BDPPSI_4_20_min%5D=8 4%5BDPPSI_5_10_min%5D=6.1 
5%5BDPPSI_6_0_min%5D=3.770%5BDPPSI_1_50_min%5D=14 1%5BDPPSI_2_40_min%5D=15 
2%5BDPPSI_3_30_min%5D=16 3%5BDPPSI_4_20_min%5D=17 4%5BDPPSI_5_10_min%5D=18 
5%5BDPPSI_6_0_min%5D=19

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

假设您的数据数组如下:

$array = array(
  array(
    'DPPSI_1_50_min' => 11,
    'DPPSI_2_40_min' => 10,
    ...
  )
);

您可以为每个数组值创建一个html标签:

foreach ($array as $eachArray) {
  foreach ($eachArray as $key => $value) { ?>
    <div data-<?= $key ?>=<?= $value ?> ></div>
  <?php }
}

根据您的评论进行了编辑:

您无法实现foreach缺点。您必须将标记的第一部分保存在var中,然后像这样连接每个数组值:

$tag ='<option value="'.$product['term_id'].'" data-details="'.$product['description'].'" data-name="' .$product['model']. '" data-serial="'.$product['serial'].'"';


foreach ( $tolerances_arr[0] as $key => $value ) { 
  $tag .= " data-{$key}=\"{$value}\" ";
}

$tag .='"> '. $product['description'].' </option>';

这是为了防止您只在一个选项标签中创建所有自定义标签属性

答案 1 :(得分:0)

最好通过简单的foreach循环播放声音。

foreach ( $myArray as $key => $value ) {
    echo "{$key}=\"{$value}\"";
}