Невозможно использовать скалярное значение в качестве массива - толчок массива

0

это мой код.

    $query = $this->db->query($sql);
    $m &= is_object($emp) ? $emp->mobile_no : $emp['mobile_no'];
    foreach ($query->result() as $row) {
        $m [] = $row->mobile_no;
    }

он предупреждает, что не может использовать скалярное значение как массив. мое простое решение - это

    $query = $this->db->query($sql);
    foreach ($query->result() as $row) {
        if (is_object($emp)) {
            $emp->mobile_no[] = $row->mobile_no;
        } else {
            $emp['mobile_no'][] = $row->mobile_no;
        }
    }

но теперь в каждом цикле он делает то же самое. Что я могу сделать? это то, что я ожидаю создать.

contacts: {
address: "329/A",
corresponding_address: "Negambo",
mobile_no: [
"0719896992",
"0713345582"
],
telephone_no: [
"0915717472",
"0915715094"
]
}

////////////////////////////////Обновить

ОК я исправлен таким образом

    $query = $this->db->query($sql);
    $tel = array();
    foreach ($query->result() as $row) {
        $tel[] = $row->telephone_no;
    }
    if (is_object($emp)) {
        $emp->telephone_no = $tel;
    } else {
        $emp['telephone_no'] = $tel;
    }
Теги:

1 ответ

0

Почему бы вам просто не использовать $m правильно

$query = $this->db->query($sql);
$m = array();
$m[] = is_object($emp) ? $emp->mobile_no : $emp['mobile_no'];
foreach ($query->result() as $row) {
    $m [] = $row->mobile_no;
}

Конечно, я говорю это, не зная, что такое $emp. Я предполагаю, что он по крайней мере эквивалентен $row поскольку они уверены, что это свойство $row->mobile_no.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню