<div class='title' data-x='car'>black</div>
<div class='title' data-x='home'>white</div>
<div class='title' data-x='train'>gold</div>
какой самый простой способ получить ассоциативный массив на стороне php:
$arr = ['car' => 'black', 'home' => 'white', 'train' => 'gold'];
поэтому html не создается php, но вы хотите создать массив html? - в этом случае вы можете отправить переменные в скрипт или функцию php с помощью POST или GET



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вот предложение, которое у меня есть:
Код:
$( document ).ready(function() {
var data = {};
$('.title').map(function(){
data[$(this).data('x')] = $(this).html();
}).get();
$.ajax({
type: "POST",
url: 'whatever.php',
data: data,
success: (response)=>{
console.info(response);
}
});
});<script src = "https://code.jquery.com/jquery-3.3.1.min.js"></script>
<div class='title' data-x='car'>black</div>
<div class='title' data-x='home'>white</div>
<div class='title' data-x='train'>gold</div>И файл whatever.php:
$arr = [];
if ($_POST) {
foreach ($_POST as $k => $v) {
$arr[$k] = $v;
}
var_dump($arr);
}
Вот вывод консоли:
array(3) {
["car"]=>string(5) "black"
["home"]=>string(5) "white"
["train"]=>string(4) "gold"
}
Проголосовали. Есть ли более короткий способ создать массив на стороне js, например var arr = collect($('.title').attr('data-x'))
$('.title').map(function(){data[$(this).data('x')] = $(this).html();}).get(); ближе к тому, что я знаю, поскольку $('.title') - это массив элементов с классом .title, и способов комбинировать data('x') и элемент .html() не так уж и много. Но задайте этот вопрос по другому вопросу, и я мог бы вскочить и поработать над этим ^^!
Как вы собираетесь получить эти данные? Вы хотите отправить эти данные в PHP? Вы хотите очистить страницу с помощью PHP?