Одна карточка в массиве, строке CSV и объекте

Фактические данные получены через расширение interbase от отдельной локальной базы Firebird. Собственные учебные объекты удалены после наблюдений.

Наблюдаемый результат программы
НаблюдениеРезультат
Ассоциативный ключ titleКабель
Числовая колонка 0Кабель
Свойство объекта titleКабель
Класс объектаstdClass
Нулевой остаток сохранёнда
SQL NULL отличается от пустой строкида
В каждой форме обе строкида
Строки и дополнительные наблюдения
{
    "forms": {
        "assoc": [
            {
                "title": "Кабель",
                "qty": 0,
                "note": null
            },
            {
                "title": "Клемма",
                "qty": 4,
                "note": ""
            }
        ],
        "row": [
            [
                "Кабель",
                0,
                null
            ],
            [
                "Клемма",
                4,
                ""
            ]
        ],
        "object": [
            {
                "title": "Кабель",
                "qty": 0,
                "note": null
            },
            {
                "title": "Клемма",
                "qty": 4,
                "note": ""
            }
        ]
    },
    "object_class": "stdClass",
    "select_executions": 3,
    "each_execution_starts_at_first_row": true
}

Самостоятельный запуск создаёт result.json с данными и metrics.json с проверками рядом с example.php.