Javascript Json:我如何重写这个数组以输出特定的格式
Javascript Json: How do I rewrite this array to output in particular format
我正在使用以下内容来收集我需要使用的字段数组:
$reqFlds = array();
$results = mysql_query("aid, fld_name from field
where aid = $acct_id2 and req_flag = 1");
while($result = mysql_fetch_assoc($results))
{
$reqFlds[] = $result;
}
<script language="javascript">
var reqFlds= <?php echo "new Array(". trim(json_encode($reqFlds), '[]').")"; ?>;
</script>
我的"reqFlds"数组如下所示:
<script language="javascript">
var reqFlds = new Array(
{"aid":"15","fld_name":"Job Issued"},
{"aid":"18","fld_name":"Job Title"},
{"aid":"20","fld_name":"Banner Details"},
{"aid":"202","fld_name":"Flyer Details"},
{"aid":"2134","fld_name":"Code Not above"},
{"aid":"5862","fld_name":"Quantity"});
</script>
我得到了一个需要数组数据的函数,如下所示:
var fldToUse = ['15||Job Issued', '18||Job Title', '20||Banner Details'];
我如何重写我的数组[reqFlds],使其以上面的格式吐出:
提前谢谢
最近的编辑-下面正是我放置代码和结果的方式
<?php
$reqFlds = array();
$results = mysql_query("select id, display_name from field where account_id = $acct_id2 and required_flag = 1");
while($RequireResult = mysql_fetch_assoc($results))
{
$reqFlds[] = $RequireResult;
}
foreach($reqFlds as $reqFlds)
{
$reqFlds = $reqFlds["id"] . "||" . $reqFlds["display_name"];
}
?>
<script language="javascript">
var requiredFieldsPRS = <?php echo "new Array(". trim(json_encode($reqFlds), '[]').")"; ?>;
var holdReqFlds = <?php echo json_encode($reqFlds); ?>;
</script>
如果把这样的代码放在循环之外,foreach,我在查看源代码时只得到一个this-这很接近,因为is是按照我需要的方式排列的,但这只是数组中的第一个值
<script language="javascript">
var requiredFieldsPRS = new Array("'5862||Quantity'");
var holdReqFlds = "'5862||Quantity'";
</script>
如果它放入数组,整个东西就会死
我肯定我只是累了,可能会想出其他借口,但简而言之,我就是不累我做错了什么。
var newArray = [];
for(var i = 0; i != reqFlds.length; ++i)
{
newArray.push(reqFlds[i].aid + "||" + reqFlds[i].fld_name);
}
newArray现在将采用您需要的格式。这是一个客户端解决方案。如果你需要在PHP方面进行更改,那么这是一个不同的解决方案:
$reqFlds = array();
$results = mysql_query("aid, fld_name from field
where aid = $acct_id2 and req_flag = 1");
while($result = mysql_fetch_assoc($results))
{
$reqFlds[] = $result['aid'] . '||' . $result['fld_name'];
}
<script language="javascript">
var reqFlds= <?php echo "new Array(". trim(json_encode($reqFlds), '[]').")"; ?>;
</script>
您可以在PHP代码中转换数组,如下所示:
$reqFlds = array();
$results = mysql_query("select aid, fld_name from field where aid = $acct_id2 and req_flag = 1");
while ($result = mysql_fetch_assoc($results)) {
$reqFlds[] = $result;
}
// at this point the array becomes something like this
//
// array(
// array("aid" => "15","fld_name" => "Job Issued"),
// array("aid" => "18","fld_name" => "Job Title"),
// array("aid" => "20","fld_name" => "Banner Details"),
// array("aid" => "202","fld_name" => "Flyer Details"),
// array("aid" => "2134","fld_name" => "Code Not above"),
// array("aid" => "5862","fld_name" => "Quantity")
// );
//
// here is how you transform array elements to desired format:
foreach($reqFlds as &$reqFld) {
$reqFld = $reqFld["aid"] . "||" . $reqFld["fld_name"];
}
unset($reqFld);
然后你可以做一个:
var reqFlds = <?php echo json_encode($reqFlds); ?>;
输出:
<script>
var reqFlds = ["15||Job Issued","18||Job Title","20||Banner Details","202||Flyer Details","2134||Code Not above","5862||Quantity"];
</script>
在客户端上,您可以尝试:
var reqFlds = new Array(
{"aid":"15","fld_name":"Job Issued"},
{"aid":"18","fld_name":"Job Title"},
{"aid":"20","fld_name":"Banner Details"},
{"aid":"202","fld_name":"Flyer Details"},
{"aid":"2134","fld_name":"Code Not above"},
{"aid":"5862","fld_name":"Quantity"});
var transformed = reqFlds.map(function(item) {
return item["aid"] + "||" + item["fld_name"];
});
小提琴
对于服务器端,Eli的解决方案看起来是正确的。
这应该可以完成
var reqFldsFormatted = new Array();
for (var i=0; i<reqFlds.length; i++) {
// Written for readability, not execution speed
reqFldsFormatted[i] = reqFlds[i]["aid"] + "||" + reqFlds[i]["fld_name"];
}
这样就可以了。干净漂亮。
<?php
$reqFlds = array();
$results = mysql_query("aid, fld_name from field where aid = $acct_id2 and req_flag = 1");
while ($result = mysql_fetch_assoc($results)) {
$reqFlds[] = $result['aid'] . '||' . $result['fld_name'];
}
?>
<script language="javascript">
var reqFlds= <?php echo json_encode($reqFlds); ?>;
</script>
相关文章:
- PHP中的数组输出
- 如何将javascript数组输出到表中
- 如何将JavaScript数组输出到HTML链接
- 需要javascript函数的数组输出
- 从javascript数组输出随机项
- 带有数字的字符串数组输出
- Mirth 连接错误:“..不是 XML 对象“时尝试从数组输出文本
- 如何在 javascript for 循环中从数组输出元素
- 不断出现逻辑错误,将我的数组输出减少到一堆零
- 向序列化数组输出添加新行
- PHP数组输出到javascript函数
- 使用JS从数组输出随机图像
- 从字节数组输出PHP格式的PDF
- MustacheJavaScript:循环对象数组输出
- 如何使数组输出使用A面文本而不是B面文本
- 如何在java8中获得js函数的数组输出
- PHP到JSON数组输出是错误的
- 从数组输出键
- 不能显示数组输出
- 从多维数组输出的数据属性选择器