1

所以我需要获取数组中包含特定 id 的部分,以便我可以使用其中的其他变量。

这是我当前创建数组的代码:

<?php foreach ($list_subjects as $subject): ?>
    subjects.push({
        id: parseInt(<?php echo $subject['subject_id']; ?>),
        subject_name: "<?php echo $subject['subject_name']; ?>",
        course_type: "<?php echo $subject['course_type']; ?>",
        num_videos: parseInt(<?php echo $subject['num_videos']; ?>),
        subject_tag: "<?php echo $subject['subject_tags']; ?>"
    });
<?php endforeach; ?>

(我知道以这种方式混合 PHP 不是一个好习惯,但请耐心等待这个问题)

这是我用来至少尝试检查值是否在数组中的代码,但它每次都返回-1,并且 course_id 的值在数组中。

警报($.inArray(course_id,subjects.id));

为什么会这样?

4

2 回答 2

1

$.inArray(course_id, subjects.id)部分将不起作用,就像数组id内对象的键一样subjects(因此不是 的属性subjects)。试试这样:

function inArrayById(array, value)
    $.each(array, function(i, element) {
        if(element.id === value){
            return true;
        }
    });
    return false;
}

alert( inArrayById(subjects, course_id) )
于 2012-07-05T11:57:39.893 回答
0

这是 Secators 函数的一个变体,除了它可以在没有 jQuery 的情况下工作。

function inArrayById(array, value) {
    for(var i = 0; i < array.length; i++) {
        if(array[i]["id"] === value) return true;
    }

    return false;
}
于 2012-07-05T13:00:20.103 回答