Получить результат массива с идентификатором в ключе вместо 0,1 в ключе массива - PullRequest
1 голос
/ 25 июня 2019

Я использовал запрос ниже, чтобы получить результат массива с идентификатором ключа в качестве значения,

$this->db->select('gp.id, gp.lot_no, SUM(gb.weight) AS weight, SUM(gb.staple) AS staple, SUM(gb.mic) AS mic, SUM(gb.strength) AS strength, SUM(gb.trash) AS trash, gb.color_grade');
            $this->db->from(GIN_BALES . ' gb');
            $this->db->join(GIN_PROCESS . ' gp', 'gp.id=gb.process_id'); 
            $this->db->where('gb.sold_status', 0);
            $this->db->where('gp.ginner_id', $this->prscr_id);
            $this->db->where('gp.program', $program_id);
            $this->db->group_by('gp.id');
            $lot_details = $this->db->get()->result();

Но я получаю результат массива, как показано ниже, и ключ массива имеет 0,1. Я хочу этот ключ массива с идентификатором, например, 561 562.

Array
(
    [0] => stdClass Object
        (
            [id] => 561
            [lot_no] => 1
            [weight] => 16230
            [staple] => 3600
            [mic] => 0
            [strength] => 0
            [trash] => 0
            [color_grade] => 0
        )

    [1] => stdClass Object
        (
            [id] => 562
            [lot_no] => 2
            [weight] => 15523
            [staple] => 3600
            [mic] => 0
            [strength] => 0
            [trash] => 0
            [color_grade] => 0
        )
)

Может кто-нибудь предложить решение этой проблемы?

Ответы [ 2 ]

1 голос
/ 25 июня 2019

Вот один лайнер,

// null will take id as key and whole array as value
$temp = array_column($temp, null, "id");

Ссылка: array_column .

Демо .

Выход :

Array
(
    [561] => stdClass Object
        (
            [id] => 561
            [lot_no] => 1
            [weight] => 16230
            [staple] => 3600
            [mic] => 0
            [strength] => 0
            [trash] => 0
            [color_grade] => 0
        )

    [562] => stdClass Object
        (
            [id] => 562
            [lot_no] => 2
            [weight] => 15523
            [staple] => 3600
            [mic] => 0
            [strength] => 0
            [trash] => 0
            [color_grade] => 0
        )

)
0 голосов
/ 25 июня 2019

Вы также можете достичь желаемого результата, сохранив результат в новом массиве, используя идентификатор index, например:

<?php
$lot_details = $this->db->get()->result(); // your result
$newArray = array(); // initialize
foreach ($lot_details as $key => $value) {
    $newArray[$value->id] = $value; // store in a new array
}
print_r($newArray);
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...