У меня был результат AJAX, который получил json_encode($result);
в PHP перед возвращением.
Первоначально возвращенные данные выглядели так:
[{"ID":"4066","post_title":"TATTOO SLEEVES"}]
Обратите внимание, что у него есть [] скобки!
Затем я бы проанализировал данные и работал с ними.
data = $.parseJSON(data);
Однако мне нужно вернуть дополнительное значение, поэтому в хуке AJAX перед возвратом я добавил:
$sql_search["sql_search_count"] = $sql_search_count;
Теперь внезапно мои данные возвращаются так:
{"0":{"ID":"4066","post_title":"TATTOO SLEEVES"},"sql_search_count":"1"}
Нет больше [] скобок!
Я пытаюсь разделить эти данные; получить часть строки «0» и протолкнуть ее через $.parseJSON(data);
как раньше Но я не могу понять, как.
Почему иногда есть [] скобки, а иногда нет?
Как получить строку «0» в новой переменной с [] вокруг нее?
Я попробовал следующее:
$sql_search[0]["sql_search_count"] = $sql_search_count;
но это дает мне ошибку …
Если я изменю это на $sql_search[0]->sql_search_count = $sql_search_count;
оно работает.
Но это не на верхнем уровне, это становится потомком первого результата, как это:
[{"ID":"4066","post_title":"TATTOO SLEEVES","sql_search_count","1"}]
Делать
$sql_search[0]["sql_search_count"] = $sql_search_count;
в вашем коде PHP, и он начнет работать как раньше. Причина отсутствия скобок в том, что
$sql_search["sql_search_count"] = $sql_search_count;
попросит PHP включить ключ с именем sql_search_count
в $sql_search
переменная. Поскольку это массив, он напрямую не может. Он преобразует его в формат, который вы видите сейчас.
Других решений пока нет …