如何将span元素数据转为符合要求的JSON数组并传给PHP处理
解决JSON数组嵌套结构的问题
嘿,刚接触JSON和PHP的时候很容易搞混这种嵌套结构,别着急~你现在的问题是没有把每个俱乐部的number和type分组为独立的对象,而是把所有键值对都堆在了同一层级,所以生成的结果是扁平的,不符合目标格式。
正确的PHP数组构建方式
你需要先为每个俱乐部创建一个独立的关联数组(对应JSON里的对象),然后把这些数组统一放到clubs对应的数组中,最后用json_encode()转成标准JSON:
// 1. 为每个俱乐部创建单独的关联数组 $club1 = ["number" => "12", "type" => "break"]; $club2 = ["number" => "4", "type" => "group"]; $club3 = ["number" => "87", "type" => "tring"]; $club4 = ["number" => "7", "type" => "samestuff"]; // 2. 把这些俱乐部数组放到clubs数组里 $finalArray = [ "clubs" => [$club1, $club2, $club3, $club4] ]; // 3. 转成JSON字符串 $jsonResult = json_encode($finalArray); // 输出结果就是你要的格式啦 echo $jsonResult;
或者更简洁的嵌套写法:
$finalArray = [ "clubs" => [ ["number" => "12", "type" => "break"], ["number" => "4", "type" => "group"], ["number" => "87", "type" => "tring"], ["number" => "7", "type" => "samestuff"] ] ]; $jsonResult = json_encode($finalArray); echo $jsonResult;
为什么之前的写法不对?
你之前应该是把所有number和type都直接塞进了同一个数组,比如:
// 错误示例:扁平结构,没有分组 $wrongArray = [ "type" => "break", "number" => "12", "type" => "group", "number" => "4", // ... 后面的重复键会覆盖前面的值,结构完全不符合需求 ];
这种扁平数组转成JSON后,就是你现在得到的无分组键值对,而且PHP会自动覆盖重复键的值,结果还会出现数据丢失的问题。
用正确方法生成的JSON,就是你期望的格式:
{"clubs":[{"number":"12","type":"break"},{"number":"4","type":"group"},{"number":"87","type":"tring"},{"number":"7","type":"samestuff"}]}
内容的提问来源于stack exchange,提问作者bevan7
相关产品推荐
相关产品推荐

