未定义索引 - 奇怪的行为

我有一个用 PHP 排序的 JSON 数组。JSON 通过 AJAX 发送到服务器。出于某种原因,我的排序仅适用于我的 JSON 数组中的大多数索引。


这里是class


class FieldSorter {

    public $field;


    function __construct($field) {

        $this->field = $field;

    }


    function sortIt($a, $b) {

        if ($a[$this->field] == $b[$this->field]) return 0;

        return ($a[$this->field] > $b[$this->field]) ? 1 : -1;

    }

}

我的 JSON 的样本*类似于


record {


        "key": "AAA",

        "default_title": "SOME DEFAULT TITLE",

        "big_stamp": "101515004186",

        "date_stamp": "1015",

        "time_stamp": "15004186",

        "real_title": "SOME TITLE",

        "display_title": "SOME TITLE (3)",

        "display_stamp": "Oct 15th - 3:00:41 pm"

}

我可以排序:

  • 钥匙

  • 所有邮票

  • 默认标题

出于某种原因,当我搜索时它显示为未定义的索引,real_title或者display_title我在所有情况下都验证了拼写。

编辑从 AJAX 到控制台的错误输出

注意:未定义索引:display_title


倚天杖
浏览 49回答 1
1回答

慕森卡

该错误意味着某些数组元素缺少某些字段,因此您需要处理丢失的数据。    function sortIt($a, $b) {        $field_a = isset($a[$this->field]) ? $a[$this->field] : '';        $field_b = isset($b[$this->field]) ? $b[$this->field] : '';        if ($field_a == $field_b) return 0;        return ($field_a > $field_b) ? 1 : -1;    }
打开App,查看更多内容
随时随地看视频慕课网APP