【发布时间】:2013-05-24 17:08:55
【问题描述】:
我有一个包含不同“列”的数组,例如:id、title、date、data 等。
它是一个 JSON 数组。
数据元素有多个条目:
"data":["test = test", "2nd test", "3rd test"]
如何找到“结果”数组的“数据”元素中有多少条目?
当我尝试result.data.length 时,它给了我整个长度,所以所有的字符。
在这里,它会说 27,而我想要 3 作为答案。
编辑:这就是我获取元素并推送它们的方式(我得到一个 JSON 数组):
$.getJSON("test.php?id=" + id, function(data) {
$.each(data, function(index, data1) {
window.result.push(data1);
});
这是 test.php 代码:
if(isset($_GET['id'])){
$id = $_GET['id'];
$liste = getData($id);
$arr = array();
$i = 0;
foreach($liste as $result){
$arr[$i]['id'] = $result->id();
$arr[$i]['titre'] = $result->titre();
$arr[$i]['data'] = $result->listeMot();
$i++;
}
echo json_encode($arr);
感谢您的帮助。
【问题讨论】:
-
有些事情你没有告诉我们,因为 JavaScript 的行为方式不是这样:
result = {"data":["test = test", "2nd test", "3rd test"]}; result.data.length; // 3。如果您不查看实际代码,我们将无法帮助您,因为您发布的代码无法按照您所说的方式运行。 -
我同意@meagar——你能发布你的对象的控制台日志输出吗?
-
result.data是数组还是字符串? -
听起来
data实际上是一个字符串。你是如何创建这个“数组”的?你忘记JSON.parse了吗? -
可能是
data属性包含一个字符串(我不确定$result->listeMot()返回什么)。如果是这种情况,您可以在 PHP 端使用$arr[$i]['data'] = explode(',', $result->listeMot());修复它,或者在 js 端使用window.result.push(data1.split(','));修复它。
标签: php javascript arrays count