ключ возврата array_filter php, а не последовательность - PullRequest
0 голосов
/ 20 сентября 2018

Я использую array_filter для поиска и удаления нежелательных результатов. Я не очень хорошо говорю по-английски, вот как я это делаю:

$obj_Data = [
    [
        "id" => 1,
        "level" => "admin",
        "name" => "jack"
    ],
    [
        "id" => 2,
        "level" => "member",
        "name" => "john"
    ],
    [
        "id" => 3,
        "level" => "member",
        "name" => "jenny"
    ],
    [
        "id" => 4,
        "level" => "member",
        "name" => "whatever"
    ]
];
function filter_callback($element) {
    if ($element["level"] == "member") {
        return TRUE;
    }
    return FALSE;
}

$arr["data"] = array_filter($obj_Data, "filter_callback");
echo json_encode($arr);

это дает мне результат как:

{
    "data": {
        "1": {
            "id": 2,
            "level": "member",
            "name": "john"
        },
        "3": {
            "id": 4,
            "level": "member",
            "name": "whatever"
        }
    }
}

Это результат, который я хочу:

{
    "data": {
        {
            "id": 2,
            "level": "member",
            "name": "john"
        },
        {
            "id": 4,
            "level": "member",
            "name": "whatever"
        }
    }
}

Как удалить «1» и «3»?Потому что я не могу использовать цикл для этого, спасибо за чтение.

1 Ответ

0 голосов
/ 20 сентября 2018

array_filter() сохраняет используемые ключи массива, делая результирующий массив объектом в контексте JSON.Просто переиндексируйте массив с помощью array_values() перед JSON-кодированием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...