Array_filter добавляет дополнительный индекс в мой массив, как от него избавиться?

У меня есть массив, созданный из json

$fullResult = json_decode('[{"qid":"1", "result":"helo"}, {"qid":"2", "result":"ad"}, {"qid":"3", "result":"testing"}, {"qid":"4", "result":"dd"}]');

function filterArray($value){
    global $id;
    return ($value->qid > $id);
}

$filteredResult = array_filter($fullResult, 'filterArray');

$id - это 2

Когда я echo json_encode($fullResult); Результат

[   {"qid": "1", "result": "helo"},
    {"qid": "2", "result": "ad"},
    {"qid": "3", "result": "testing"},
    {"qid": "4", "result": "dd"}    ]

Однако, когда я echo json_encode($filteredResult);, результат, как показано ниже (например, с дополнительным index.

{  "2":{"qid":"3","result":"testing"},
   "3":{"qid":"4","result":"dd"}   }

Я хочу, чтобы это было как показано ниже

[  {"qid":"3","result":"testing"},
   {"qid":"4","result":"dd"}   ]

Как я мог этого добиться?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
59
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

array_filter сохранит ключ. Если вы хотите сделать его простым массивом, вы можете использовать array_values

$filteredResult = array_values(array_filter($fullResult, 'filterArray'));

echo json_encode($filteredResult); 

Это приведет к:

[{"qid":"3","result":"testing"},{"qid":"4","result":"dd"}] 

Док: array_values

Спасибо!. Два тоже правильное значение, я голосую за обоих, пока не уверен, кому поставить галочку.

Elye 03.04.2018 11:36
Ответ принят как подходящий

Вместо

echo json_encode($filteredResult);

попробуйте что-нибудь вроде,

echo json_encode(array_values($filteredResult));

array_values устранит нежелательные индексы.

Спасибо!. Два тоже правильное значение, я голосую за обоих, пока не уверен, кому поставить галочку.

Elye 03.04.2018 11:36

Я выбираю это как ответ, поскольку вы ответили первым. Спасибо!!

Elye 03.04.2018 11:39

Вы также можете установить его по циклу.

$singleArray = array();

foreach ($filteredResult as $key => $value){
        $singleArray[] = $value;
}
echo json_encode($singleArray);exit;

Другие вопросы по теме