Как я могу добавить ключи массива и значения в элемент HTML? - PullRequest
0 голосов
/ 28 июня 2018

У меня есть вывод массива, как показано ниже:

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 голосов
/ 28 июня 2018

Предполагая, что ваш массив данных выглядит следующим образом:

$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>';

Это на тот случай, если вы хотите создать все свои атрибуты пользовательских тегов только в одном теге option

0 голосов
/ 28 июня 2018

Звучит так, будто вам лучше всего с простым циклом foreach.

foreach ( $myArray as $key => $value ) {
    echo "{$key}=\"{$value}\"";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...