$onu = DB::table('onu as o')
->select('o.mac', 'o.id_switch', 'o.switch_port')
->get();
выхлоп вот такой
object(Illuminate\Support\Collection)#947 (2) {
["items":protected]=>
array(3) {
[0]=>
object(stdClass)#954 (3) {
["mac"]=>
string(17) "e0:67:b3:81:ad:6c"
["id_switch"]=>
int(5)
["switch_port"]=>
int(3)
}
[1]=>
object(stdClass)#24 (3) {
["mac"]=>
string(17) "0c:f0:b4:38:39:01"
["id_switch"]=>
int(5)
["switch_port"]=>
int(3)
}
[2]=>
object(stdClass)#953 (3) {
["mac"]=>
string(17) "e0:67:b3:1d:09:5b"
["id_switch"]=>
int(5)
["switch_port"]=>
int(3)
}
}
["escapeWhenCastingToString":protected]=>
bool(false)
}
мне нужно в этом объекте mac сравнивать с другой строкой, есть ли элегантное решение типа in_array что не перебирать весь объект?
Вместо get сделай pluck('mac')
сделал вот так $onu = DB::table('onu as o') ->select('o.mac', 'o.id_switch', 'o.switch_port') ->pluck('mac')->toArray(); //$onu = DB::select("SELECT o.mac, o.id_switch, o.switch_port FROM onu o"); var_dump($onu); $key = in_array('e0:67:b3:1d:09:5b', $onu); var_dump($key); но мне нужно потом будет сверять по id_switch и switch_port
Ну видишь, опять условия изменились
ну это уже ближе что ты советуешь, но я же не зря в селекте выбираю))
Обсуждают сегодня